0

我有以下代码:

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>

<p id="someElement"></p>
<p id="anotherElement"></p>



<script>
var xml = "<count>1</count><ticketID id='2'><incidentUrl>3</incidentUrl></ticketID>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "count" );

/* append "RSS Title" to #someElement */
$( "#someElement" ).append( $title.text() );

/* change the title to "XML Title" */
$title.text( "XML Title" );

/* append "XML Title" to #anotherElement */
$( "#anotherElement" ).append( $title.text() );
</script>

</body>
</html>

上面的代码 - 产生一个错误:无效的 XML

但是,当我将 var xml 更改为: var xml = <count >1</count> 时,它可以正常工作而不会出现任何错误。

为什么是这样 ?

谢谢!

4

3 回答 3

3

XML 文档中不能有两个根元素。

请注意,根据官方语法,只能有一个“顶级”或“根”元素。

您的示例在顶层同时具有 count 和 ticketId,这是不允许的。

于 2012-06-12T05:33:37.657 回答
1

您的 XML 有多个根元素

<count>1</count><ticketID id='2'><incidentUrl>3</incidentUrl></ticketID>

将其包装在单个容器根元素中,它应该可以工作

<container><count>1</count><ticketID id='2'><incidentUrl>3</incidentUrl></ticketID></container>
于 2012-06-12T05:34:55.290 回答
1

jQuery.parseXML() 将字符串解析为 XML 文档。你的问题..

但是,当我将 var xml 更改为: var xml = < count >1</ count > 时,它可以正常工作而不会出现任何错误。

为什么是这样?

那是因为您的数据已经是 XML 格式,不需要解析。继续下一行代码。

$xml = $( xmlDoc ),
$title = $xml.find( "count" );

无需解析XML。
希望能帮助到你

于 2018-08-14T09:55:06.110 回答