在Javascript中获取复杂命名空间下的数据

时间:2013-04-04 17:32:57

标签: javascript xml xml-namespaces

我需要以下XML来提取特定字段:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices">
<id>Cases</id>
<title type="text">CaseList</title>
<updated>2013-04-04T15:32:56Z</updated>
<author>
<name/>
</author>
<link href="CaseList" rel="self" title="CaseList"/>
<entry>
    <id>291</id>
    <title type="text">CaseList('291')</title>
    <updated>2013-04-04T15:32:56Z</updated>
    <category term="S.Cases" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
        <content type="application/xml">
            <m:properties>
                <d:case_id>291</d:case_id>
                <d:case_title>Global Case</d:case_title>
                <d:case_type>Meso</d:case_type>
        </m:properties>
    </content>
</entry>
<entry>
    <id>291</id>
    <title type="text">CaseList('292')</title>
    <updated>2013-04-04T15:38:56Z</updated>
    <category term="S.Cases" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"/>
        <content type="application/xml">
            <m:properties>
                <d:case_id>292</d:case_id>
                <d:case_title>Global Case 2</d:case_title>
                <d:case_type>Meso 2</d:case_type>
        </m:properties>
    </content>
</entry>
</feed>

我几乎尝试了所有内容,但我觉得我缺少一个核心XML概念,可以帮助我提取节点,例如d:case_id。有没有一种使用Javascript拉出一个或多个节点的简单方法?其他命名空间问题不包括另一个命名空间中的命名空间...这里,我感兴趣的值是m:properties之后。

1 个答案:

答案 0 :(得分:0)

我用过这个

parentNode.getElementsByTagNameNS("*", "name");

它在chrome和IE10浏览器中对我来说很好。

请按照以下链接了解详情:

jQuery XML parsing with namespaces