如何使用XML JavaScript解析儿童努力



我试图采取此样本XML响应并解析此XML的孩子和孩子节点。PRIN和角色对象将用于创建相关记录,其中主要记录的Prinid将设置为相关的子记录的角色。

我面临的挑战是通过子对象循环,然后立即解析孩子的记录。我编写的代码都具有单独的作用,这不允许我为每个角色创建相关记录。

如果我采用相同的逻辑并将getElementsbytagname更改为角色,它只是将这些记录解析为没有与其父对象任何关系的记录。

我如何编写第二个循环或迭代器,以便在循环浏览其子女记录的角色时获得主记录的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();
        }
    }
}

类似的东西?

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);
        ...
    }
}

最新更新