[英]How to fix matching end-tag error within JavaScript on Blogger?
[英]XML CDATA error: The element type <X> must be terminated by the matching end-tag </X>
我在XML Feed中收到以下數據:
<imagetag><![CDATA[
http://images.dealer.com/0098/65654e9beaae8aca2eeb7778e723e733x.jpg]
]></imagetag>
我有兩個問題:
The element type "imagetag" must be terminated by the matching end-tag "</imagetag>".
([\\s\\S]*)<imagetag><!\\[CDATA\\[([\\s\\S]*)\\]\\]><\\/imagetag>([\\s\\S]*)
。 如果.jpg]
之后沒有換行符,則可以完美運行,但是可以! 我猜這兩個問題是相關的,但我不確定原因。 任何幫助表示贊賞!
首先,認識到您不需要CDATA來表示XML中的URL。
其次,使用XML解析器收到錯誤的原因是您的數據不是XML。 您的CDATA部分格式不正確: CDATA結束標記CDEnd
不能在其中包含換行符:
[18] CDSect ::= CDStart CData CDEnd
[19] CDStart ::= '<![CDATA['
[20] CData ::= (Char* - (Char* ']]>' Char*))
[21] CDEnd ::= ']]>'
因此,對於您的XML解析器發出錯誤是完全正確的。
前進的方法是不要嘗試通過正則表達式解析XML (盡管可能會針對特定問題(例如,查找和修復帶有嵌入式空白的[ ]]>
進行抽查/修復)。 前進的道路是修復數據。 這是為正確使用CDATA而修復的數據:
<imagetag><![CDATA[
http://images.dealer.com/0098/65654e9beaae8aca2eeb7778e723e733x.jpg
]]></imagetag>
要么
<imagetag><![CDATA[http://images.dealer.com/0098/65654e9beaae8aca2eeb7778e723e733x.jpg]]></imagetag>
重要說明: CDStart
必須為<![CDATA[
並且CDEnd
必須為]]>
, 且沒有換行符 。 還請注意]]>
不能出現在CDATA部分中; CDATA節不能嵌套。
如果無法修復數據,請拒絕數據。 處理格式不正確的文本數據(如XML)是不合適的。 它只會使問題永久存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.