簡體   English   中英

在處理無效的XML之前編碼特殊字符

[英]Encoding Special Characters Before Processing Invalid XML

我有一些需要處理的來自供應商的無效XML。 這是一個例子:

<a>foo</a>
<b>bar</b>
<c>foobar is < $15</c>

因此,我們有一些問題。 首先,沒有根文檔。 我通過添加根文檔克服了這一問題。 沒問題。 第二個也是更困難的問題是小於符號。 我可以對整個內容進行編碼,但是它將對XML標簽進行編碼。 是否有某個地方的庫或簡單方法可以處理此問題? 我真的不想徹底改變這個想法,因為我敢肯定,數百人已經在處理“准XML”這樣的問題。 感謝任何幫助。

我會逐行讀取文件,並使用正則表達式來獲取節點之間的值。 您的示例沒有嵌套元素,因此非常簡單。 逐行讀取時,您可以替換編碼內部值。 命名捕獲組(?。*?)將把節點之間的所有內容都放入名為xml的組中。

var regex = "<.*?>(?<xml>.*?)</.*?>"
var badXML = Regex.Match(line, regex , RegexOptions.IgnoreCase).Groups["xml"].Value;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM