我正在尝试使用此示例xml响应并解析此xml的子节点和子节点。 Prin和Role对象将用于创建相关记录,其中主记录的PrinID将设置为相关子记录的角色。
我遇到的挑战是循环遍历子对象,然后立即解析子记录。我编写的代码单独执行,不允许我为每个角色创建相关记录。
如果我采用相同的逻辑并将getElementsByTagName更改为Role,它只是解析这些记录而与其父对象没有任何关系。
我如何编写第二个循环或迭代器,以便在循环遍历其子记录的角色时获取主记录的PrinID
。
<Prin>
<PrinName>John</PrinName>
<PrinID>12345</PrinID>
<Role>
<Code>1111</Code>
</Role>
<Role>
<Code>2222</Code>
</Role>
</Prin>
<Prin>
<PrinName>James</PrinName>
<PrinID>45678</PrinID>
<Role>
<Code>3333</Code>
</Role>
<Role>
<Code>4444</Code>
</Role>
</Prin>
var prinID="";
var prinList=prinDoc.getDocumentElement().getElementsByTagName("Prin");
for (var i=0;i<prinList.getLength();i++){
var childList=prinList.item(i).getChildNodes();
for (var j=0;j<childList.getLength();j++){
var childNode=childList.item(j);
if (childNode.getNodeName()=="PrinName"){
prinID=childNode=getTextContent();
}
}
}
答案 0 :(得分:0)
这样的东西?
var prinID="";
var prinList=prinDoc.getDocumentElement().getElementsByTagName("Prin");
for (var i=0;i<prinList.getLength();i++){
var prinObject = printList.getItem(i);
var prinID = prinObject.getElementsByTagName("PrinID").getTextContent();
var roleList=prinObject.getElementsByTagName("Role");
for (var j=0;j<roleList.getLength();j++){
var roleObject = roleList.item(j);
...
}
}