簡體   English   中英

從xml文件中刪除無效字符的最簡單方法?

[英]easiest way to remove invalid characters from a xml file?

我有一個包含無效字符的xml文件。 我通過互聯網搜索,除了將文件作為文本文件讀取並逐個替換無效字符之外,沒有找到任何其他方法。

有人可以告訴我一個從xml文件中刪除無效字符的最簡單方法。

ex xml流:

<Year>where 12 > 13 occures </Year>

我會嘗試HtmlAgilityPack 至少比嘗試手動解析更好。

HtmlAgilityPack.HtmlDocument hdoc = new HtmlAgilityPack.HtmlDocument();
hdoc.LoadHtml("<Year>where 12 > 13 occures </Year>");

using(StringWriter wr = new StringWriter())
{
   using (XmlWriter xmlWriter = XmlWriter.Create(wr,
           new XmlWriterSettings() { OmitXmlDeclaration = true }))
   {
       hdoc.Save(xmlWriter);
       Console.WriteLine(wr.ToString());
   }
}

這個輸出:

<year>where 12 &gt; 13 occures </year>

首先要以不同的方式思考問題。 您的問題是輸入不是有效的XML。 所以你實際上想要從非XML文件中刪除無效字符。 這可能聽起來很迂腐,但它立即表明,用於處理XML的工具對您沒用,因為您的輸入不是XML。

在源頭修復問題總是比以后嘗試修復損壞更好。 但是,您將着手實施修復策略,首先要准確定義要修復的數據中的哪些故障以及您打算如何修復它們。 明確說明您對解決方案應用的約束也是一個好主意:例如,如果您的修復意外更改了任何注釋或CDATA部分的內容,這是否重要?

一旦你定義了你的修復策略:例如“替換任何&by &amp;如果它沒有緊跟#nn;或#xnn;或者名字后跟';',編碼就變得非常簡單了。

暫無
暫無

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

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