【发布时间】:2021-03-03 20:23:11
【问题描述】:
打赌这有点基础,但我不知道该怎么做。
我有一个xml,它有ModelList标签,其中包括很多Model标签,其中还包括也Model标签:
<ModelList>
<Model name="Name">
<Model name="SubName" id="ID"></Model>
...
</Model>
<Model name="Name2">
<Model name="SubName2" id="ID2"></Model>
...
</Model>
</ModelList>
顶级Model标签代表车辆标记,低级代表车型。
我有 2 个 js 字符串:car Mark 和 car Model,我需要找到模型的 id。
很遗憾,老实说,我从来没有经常使用 xml,所以我寻求帮助。
我做的唯一事情是
var parser = new DOMParser();
var xmlDoc = parser.parseFromString(xmlString, "text/xml");
var element = xmlDoc.getElementsByTagName("ModelList")[0];
所以,我想,接下来我需要遍历所有顶级Model,并将它们的Name 属性与我标记的字符串进行比较。如果它们相等,则对内部 Model 标签执行相同操作,搜索模型。
我觉得应该是这样的
for(var i=0;i<element.length;i++)
if(element[i].Name==MarkString)
for(var j=0;j<element[i].length;j++)
if(element[i][j].Name==ModelString)
return element[i][j].id;
但不幸的是,element 没有 length 属性。
【问题讨论】:
-
您能否编辑您的问题,首先显示
MarkString和ModelString的内容,其次,根据您的示例xml,您的预期输出到底是什么?
标签: javascript html xml-parsing