作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个结构如下的 XML 文件。所有数据都保存为属性(不幸的是我无法更改结构)。我正在将其读入 Javascript。我有以下代码,但我在将每个工厂与代理关联时遇到麻烦。我尝试过 ChildNodes,但这似乎不适用于属性。
parser = new DOMParser();
xmlDoc = parser.parseFromString(reader.result,"text/xml");
var i;
for (i = 0;i<xmlDoc.getElementsByTagName("Agent").length;i++)
{
console.log(xmlDoc.getElementsByTagName("Agent")[i].attributes);
for (....)//some for loop to look at every plant for that agent.
{
}
}
以及 XML 数据:
<?xml version="1.0" encoding="utf-8"?>
<root>
<Agent Id="1" Type="typeA" Area="Area1">
<Portfolio>
<Plant Type="Type1" SubType="SubType1" />
<Plant Type="Type2" SubType="SubType2" />
</Portfolio>
</Agent>
<Agent Id="2" Type="typeB" Area="Area2">
<Portfolio>
<Plant Type="Type3" SubType="SubType3" />
<Plant Type="Type4" SubType="SubType4" />
</Portfolio>
</Agent>
</root>
最佳答案
您可以简单地获取标签名称为<Plant>
的所有元素嵌套在您的 <Agent>
内标签。
parser = new DOMParser();
xmlDoc = parser.parseFromString(xml,"text/xml");
// traverse agents
for (let agent of xmlDoc.getElementsByTagName("Agent"))
{
//console.log(agent.attributes);
// traverse plants
for (let plant of agent.getElementsByTagName("Plant")) {
console.log('agent:', agent.attributes, 'plant:', plant.attributes);
}
}
在这里查看一个实例:jsfiddle .
关于javascript - 遍历Javascript dom,细节作为属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59008854/
我是一名优秀的程序员,十分优秀!