我寫了一個XML解析器解析成功,其給出input.But有時被給予5解析器輸入文件中的XML文件的文本屬性雙引號,因爲它的我的解析器崩潰。問題,當一個額外的報價
如
<tag myprop=" this has a extra quote here like " some times" > </tag>
我知道這可能/可能不會有多餘的quote.I使用DOM解析器的標籤。
我該如何處理這種情況?
我寫了一個XML解析器解析成功,其給出input.But有時被給予5解析器輸入文件中的XML文件的文本屬性雙引號,因爲它的我的解析器崩潰。問題,當一個額外的報價
如
<tag myprop=" this has a extra quote here like " some times" > </tag>
我知道這可能/可能不會有多餘的quote.I使用DOM解析器的標籤。
我該如何處理這種情況?
在實際XML之前,您將無法使用XML解析器。你目前擁有的是無效的(即不是XML)。您應該事先轉義屬性內的引號。
轉義代碼是這樣:
<tag myprop=" this has a extra quote here like " some times" > </tag>
至於爲什麼你的解析器崩潰,以及有dozens of XML libraries存在 - 你看任何這些?我個人希望收到ParseException或類似的東西。
我不知道肯定,但我認爲這只是無效的XML等解析器要優雅地失敗(而不是崩潰),但我不認爲它應該成功解析這樣的文件。
你不能。這不是有效的XML,所以DOM解析器將無法解析。
看到XML 1.0規範,第2.4節:
http://www.w3.org/TR/xml/#attdecls
爲了允許屬性值中包含單和雙引號, 撇號或單引號字符(')可以被表示爲「 &「;以及雙引號字符(」)作爲「&」;「。」。
所以,因爲它不是有效的XML,你的解析器不應該試圖處理無效值,它只需要給出一個錯誤。
我不認爲寫你自己的XML解析器是一個好主意,特別是因爲你顯然不理解,甚至XML的基礎知識呢。 –