在XmlReader中使用它之前,是否有任何簡單/通用的方法來清理基于XML的數(shù)據(jù)源,以便我可以正常使用與XML上的十六進(jìn)制字符限制不符的XML數(shù)據(jù)?注意:該解決方案需要處理使用UTF-8以外的字符編碼的XML數(shù)據(jù)源,例如,通過在XML文檔聲明中指定字符編碼。剝離無效的十六進(jìn)制字符時不改變源代碼的字符編碼一直是主要的問題。刪除無效的十六進(jìn)制字符應(yīng)該只刪除十六進(jìn)制編碼的值,因為您經(jīng)常會在數(shù)據(jù)中恰好包含一個字符串(該字符串與十六進(jìn)制字符匹配)中找到href值。背景:我需要使用符合特定格式(例如Atom或RSS提要)的基于XML的數(shù)據(jù)源,但希望能夠使用已發(fā)布的數(shù)據(jù)源(根據(jù)XML規(guī)范包含無效的十六進(jìn)制字符)。在.NET中,如果您有一個表示XML數(shù)據(jù)源的Stream,然后嘗試使用XmlReader和/或XPathDocument對其進(jìn)行解析,則會由于XML數(shù)據(jù)中包含無效的十六進(jìn)制字符而引發(fā)異常。我當(dāng)前解決此問題的嘗試是將Stream解析為字符串,并使用正則表達(dá)式刪除和/或替換無效的十六進(jìn)制字符,但是我正在尋找一種性能更高的解決方案。
添加回答
舉報
0/150
提交
取消