js获取xml里多层不同节点下的cdata的内容
时间: 2023-11-23 13:06:19 浏览: 112
可以使用JavaScript中的DOMParser对象将XML字符串解析为DOM对象,然后使用querySelectorAll方法选择需要的节点,再通过textContent属性获取节点的文本内容。
例如,假设有以下XML字符串:
```xml
<root>
<node1>
<![CDATA[content1]]>
</node1>
<node2>
<subnode>
<![CDATA[content2]]>
</subnode>
</node2>
</root>
```
可以使用以下代码获取node1和subnode节点下的cdata内容:
```javascript
// 将XML字符串解析为DOM对象
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlString, "text/xml");
// 获取node1和subnode节点下的cdata内容
const node1Content = xmlDoc.querySelectorAll("node1")[0].textContent;
const subnodeContent = xmlDoc.querySelectorAll("node2 subnode")[0].textContent;
console.log(node1Content); // "content1"
console.log(subnodeContent); // "content2"
```
需要注意的是,如果cdata节点中包含特殊字符(如"<"、">"、"&"等),则需要进行转义。
阅读全文