使用Javascript的XML,试图找到父级的名称

时间:2012-08-03 15:12:52

标签: javascript xml xml-parsing

我是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);

等。但似乎没有任何工作我得到Nulls或未定义。 我基本上想要获取名称(名字,ACCOUNTID等),这样我就可以运行一个switch语句并将节点值放在适当的位置。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

对我而言,对于“parentNode名称”的含义有点不清楚。感谢您的上一句话,我想,您希望获得每个val代码的FL属性?!以下内容对此有所帮助:

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

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

希望它有所帮助。祝你有个美好的一天。