0

我在对象标头中有以下带有特殊字符“:”的 xml。如何解析它。

<p606:ResponseData xmlns:p353="">
<p353:PersonId idOwner="loA">
<p353:IdValue name="78N">1fgsth</p353:IdValue> 
</p353:PersonId>
<p353:CInfo effectiveDate="2010-03-13" xsi:type="p353:cnt">
<p353:TCode>OYYT</p353:TCode> 
<p353:Ext>100</p353:Ext> 
</p353:ContactInfo>
</p606:ResponseData>

我使用了以下

xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "p353:TCode" );
$( "#somePlace" ).append( $title.text() );

但它没有用......此外,我想要来自以下行的 EffectiveDate 的值

<p353:CInfo effectiveDate="2010-03-13" xsi:type="p353:cnt">

怎么做

4

2 回答 2

1

首先你应该转义 : 字符,默认情况下它表示伪类,在 jQuery 选择器中。

$xml = $(xml);
Try this for title: $xml.find("p353\\:TCode").text();
And for date: $xml.find("p353\\:CInfo").attr('effectiveDate');

以下问题可能对您有所帮助: jQuery XML parsing with namespaces

于 2013-03-04T09:43:19.573 回答
1

这些是引用命名空间 URI 的前缀。您需要一个 naespace 感知解析器。请注意,节点的名称ResponseData不是p606:ResponseData.

前缀应在元素的父链中的某处声明,例如:

<p606:foo xmlns:p606="http://www.example.com/portal/606">
    <p606:bar property="value"/>
</p606:foo>

在片段中很明显p353没有定义。

于 2013-03-04T09:43:41.577 回答