谈谈获取XML格式数据中特定节点值的方法

     为了打发闲暇时间,从3月份开始在博客里面写文章,对.net领域的粗浅认识、工作当中解决实际问题的过程、阅读技术牛人的感想、对各方面知识的总结梳理等等都被摆上台面。无奈技术理解肤浅,文字表达能力有限,写出来的东西让人提不起兴趣,纯属自娱自乐吧,权当作为自己技术积累的仓库了,嘿嘿。

     下面就写点有关xml技术方面的东西,xml在我目前所负责的模块中应用很广,经常遇到对xml数据的操作。

      主要有以下情形:

      1.在windws服务里面调用web服务方法返回xml格式数据的字符串。

      2.根据xml数据中的信息将xml数据存入数据库。

      3.自己根据xml数据中的信息组织成新的xml数据存入数据库。

      上述情形都涉及到如何获取xml特定节点的值,在我的项目中目前有3中方法:

      1.将xml字符串转换为一个dataset,这就变成了如何得到datatable中某一行某一列值的问题,不在此讨论。

      2.将xml字符串转化为XmlDocument类,根据节点名称找到节点的集合XmlNodeList,在循环集合过程中,根据节点的子节点ChildNodes的数量以及索引来找,这种方法要求对xml的数据格式非常熟悉。

      3.将xml字符串转化为XmlDocument类,根据节点名称找到节点的集合XmlNodeList并结合XPath语言来找,这种方法比较灵活,所需代码也较少,需要对xml数据格式和XPath都很熟悉。

      下面是几个实例:

      XmlNodeList  xNodeLst = doc.SelectNodes("/NewDataSet/Table1[VP_ID=" + dr["fid"].ToString() + "]/VP_ID");(得到xml数据中VP_ID节点的值等于dr["fid"].ToString()的节点名称为VP_ID节点的集合)。

      string strFId = xmlQueryResult.SelectSingleNode("/NewDataSet/Table1[ID]").InnerText;(获取xml数据中节点名称为ID的节点的唯一值)。

### 回答1: 可以使用 JavaScript 的 `getElementsByTagName()` 方法获取 XML 文档所有的节点名称。 下面是一个简单的示例: ```javascript // 解析 XML 文档 var xmlDoc = new DOMParser().parseFromString(xmlString, "text/xml"); // 获取所有的节点名称 var nodeNames = xmlDoc.getElementsByTagName("*"); // 遍历节点名称并输出 for (var i = 0; i < nodeNames.length; i++) { console.log(nodeNames[i].nodeName); } ``` 在上面的示例,首先使用 `DOMParser` 对象的 `parseFromString()` 方法XML 字符串解析为 XML 文档。然后,使用 `getElementsByTagName()` 方法获取文档所有的节点名称,并使用循环遍历并输出这些节点名称。 注意,在这里,我们使用通配符 `*` 来获取所有的节点名称,你也可以使用具体的节点名称来获取特定类型的节点。例如,若要获取所有的 `<item>` 节点,可以使用 `xmlDoc.getElementsByTagName("item")`。 ### 回答2: 使用JavaScript获取XML格式数据的所有节点名称,可以使用DOM解析器来解析XML文档。以下是一种简单的方法: 1. 创建一个XMLHttpRequest对象(也可以使用fetch API),并使用该对象发送请求以获取XML数据。 2. 在请求成功的回调函数,将返回的XML数据传递给DOM解析器。 3. 使用DOM解析器来解析XML数据,并获取节点。 4. 遍历根节点的子节点获取每个节点的名称。 下面是示例代码: ```javascript // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); xhr.open('GET', 'your_xml_file.xml', true); // 请求成功 xhr.onload = function() { // 获取返回的XML数据 var xmlData = xhr.responseXML; // 创建DOM解析器 var parser = new DOMParser(); // 解析XML数据 var xmlDoc = parser.parseFromString(xmlData, 'text/xml'); // 获取节点 var root = xmlDoc.documentElement; // 遍历子节点获取节点名称 var nodeNames = []; for (var i = 0; i < root.childNodes.length; i++) { var node = root.childNodes[i]; // 判断节点类型是否为元素节点 if (node.nodeType === 1) { nodeNames.push(node.nodeName); } } // 打印节点名称 console.log(nodeNames); }; // 发送请求 xhr.send(); ``` 上述代码,需要将`your_xml_file.xml`替换为实际的XML文件路径。在控制台输出,将会显示XML数据所有节点的名称。 ### 回答3: 要使用JavaScript获取XML格式数据的所有节点名称,可以通过以下步骤进行操作: 1. 创建一个XMLHttpRequest对象,并使用该对象发送一个HTTP请求获取XML数据。 2. 使用XMLHttpRequest对象的responseXML属性获取返回的XML数据。 3. 使用querySelectorAll()方法选择所有的XML节点,并将结果保存在一个NodeList对象。 4. 遍历NodeList对象,分别获取每个节点的名称,并将名称保存在一个数组。 以下是一个示例代码: ``` // 创建一个XMLHttpRequest对象 var xhttp = new XMLHttpRequest(); // 发送HTTP请求 xhttp.open("GET", "your_xml_data.xml", true); xhttp.send(); // 监听XMLHttpRequest对象的onreadystatechange事件 xhttp.onreadystatechange = function() { if (this.readyState == 4 && this.status == 200) { // 获取返回的XML数据 var xmlDoc = this.responseXML; // 选择所有的XML节点 var nodes = xmlDoc.querySelectorAll("*"); // 创建一个数组保存节点名称 var nodeNames = []; // 遍历节点并保存名称 for (var i = 0; i < nodes.length; i++) { nodeNames.push(nodes[i].nodeName); } // 输出节点名称 console.log(nodeNames); } }; ``` 以上代码通过使用XMLHttpRequest对象获取XML数据,然后使用querySelectorAll()方法选择所有的节点。最后,遍历节点并保存名称在一个数组,并输出数组的内容。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值