解析具有特殊字符的xml

时间:2013-03-04 09:38:27

标签: jquery html xml

我在对象标题中有以下带有特殊字符“:”的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">

怎么做

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

这些是引用名称空间URI的前缀。您需要一个支持naespace的解析器。请注意,该节点的名称为ResponseData而不是p606:ResponseData

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

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

在片段中很明显p353未定义。