我在对象标题中有以下带有特殊字符“:”的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">
怎么做
答案 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
未定义。