簡體   English   中英

如何從C#中的xml中刪除無效字符

[英]how to remove invalid characters from xml in C#

我有一個xml,它由很多文本組成,如下所示:

<EmployeeId>&EmpId;</EmployeeId>
<Department>&Dept;</Department>

我需要刪除&字符,以便適當的xml來對xsd進行驗證。 怎么能實現這個?

你也可以使用

創建節點時, xml = "<myxmlnode>"+ SecurityElement.Escape(string) +"</myxmlnode>"

這將處理所有無效字符並逃避它們。

我不建議刪除數據只是為了“修復”一個問題。 &字符添加到Xml數據的正確方法是&amp; 您可以使用XmlWriter或框架中的其他類來創建Xml,並讓它為您找出格式。

您可以執行以下操作之一:

string content = System.IO.File.ReadAllText("PATH");
System.IO.File.WriteAllText("PATH", content.Replace("&", String.Empty));

要么

string content = System.IO.File.ReadAllText("PATH");
System.IO.File.WriteAllText("PATH", content.Replace("&amp;", "&").Replace("&", "&amp;"));

“雙重替換”是為了避免創建“&amp; amp;”。

如果在XML中使用某些字符,則需要對其進行正確編碼。 &符號&是其中之一。

看看這里,如果這些字符是XML中包含的數據的一部分,則需要對這些字符進行編碼。

http://support.microsoft.com/kb/316063

我建議看一下XMLConvert類。 您可以使用它來編碼和解碼XML以使其安全。 這也將處理XML規范中定義的非法字符 正如已經指出的那樣,刪除諸如&amp的文本實際上會改變下划線數據,因此您應該根據需要進行編碼和解碼。

暫無
暫無

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

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