0

我对 XML 很陌生,在尝试获取父节点名称时遇到了一些问题

<?xml version="1.0" encoding="UTF-8" ?>
<response uri="/crm/private/xml/Contacts/getSearchRecords">
    <result>
        <Contacts>
            <row no="1">
                <FL val="CONTACTID">545094000000127015</FL>
                <FL val="First Name"><![CDATA[Roger]]></FL>
                <FL val="Last Name"><![CDATA[Rabbit]]></FL>
                <FL val="ACCOUNTID">12345678910</FL>
                <FL val="Account Name"><![CDATA[Warner Bros Inc]]></FL>
            </row>
        </Contacts>
    </result>
</response>

在我的 Javascript 中,我可以通过这种方式获取孩子的 nodeValues

parser = new DOMParser();
xmlDoc = parser.parseFromString(req.responseText, "text/xml");
//I also have the windows one but no need to see it   
var length = xmlDoc.getElementsByTagName("FL").length;
for (var i = 0; i < length; i++) {
    alert(xmlDoc.getElementsByTagName("FL")[i].childNodes[0].nodeValue);
}

我试过了:

alert(xmlDoc.getElementsByTagName("FL")[i].nodeValue);
alert(xmlDoc.getElementsByTagName("FL")[i].childNodes[0].parentNode.nodeValue);
alert(xmlDoc.getElementsByTagName("FL")[i].childNodes[0].parentNode.nodeName);

等,但似乎没有任何工作我要么得到空值要么未定义。我基本上想获取名称(名字、帐户 ID 等),以便我可以运行 switch 语句并将节点值放置在适当的位置。

谢谢您的帮助!

4

1 回答 1

1

对我来说,您对“父节点名称”的含义有点不清楚。感谢您的最后一句话,我猜您想获取每个标签的val属性?!FL以下内容应该对此有所帮助:

alert(xmlDoc.getElementsByTagName("FL")[i].getAttribute('val'));

我建议您使用 JavaScript 控制台,console.log而不是alert.

希望能帮助到你。祝你有美好的一天。

于 2012-08-03T15:26:19.847 回答