2009-08-24 82 views
2

我需要將一些XML元素髮送給其他服務,並且我希望確保我的XML文件具有優雅的格式,以便其他人可以使用他們的XML解析器來解析XML文件。這是一個有效的XML文件嗎?

對於這種類型的XML文件,這是否是優雅的格式,打破了XML的任何規則?不確定&#x4是否是.Net/C#中的有效XML字符序列?

我很疑惑字符串是否以$#x開頭都是有效的?如果不是全部都是有效的,有什麼方法可以將它們過濾出來?

我正在使用VSTS 2008 + C#+ .Net 3.5。

<?xml version="1.0" encoding="utf-8"?> 
<Text>&#x4;</Text> 

回答

7

編號字符引用必須以分號結尾。

更新:鑑於問題中的語法錯誤已得到糾正,請參閱http://www.w3.org/TR/xml/#dt-charref以瞭解什麼值可以接受。 。

坦率地說,我會堅持到UTF-8除了一切」,<,>和&這使得XML本身更具可讀性

+1

所以它應該是' ' – voyager 2009-08-24 14:05:11

+0

對不起,這是我的錯字,我已經糾正它,它應該是結束於;在我的意見。它們是否可用於XML元素值的有效XML字符串? – George2 2009-08-24 14:10:00

+0

感謝您的更新。 .Net是否有任何現有的方法或簡單的解決方案來過濾掉這些字符? – George2 2009-08-24 14:17:36

5

使用XML Validator它顯示了以下錯誤:。

錯誤:字符引用必須以';'結尾分隔符。

+0

對不起,這是我的錯字,我糾正了它,它應該以;在我的意見。它們是否可用於XML元素值的有效XML字符串? – George2 2009-08-24 14:10:39

+0

驗證程序表示它無效,但爲什麼?如何過濾掉這樣的字符? – George2 2009-08-24 14:14:37

+0

你想從XML文件中刪除所有這些字符? – 2009-08-24 14:33:19

2

正如其他人所建議的,有一個分號失蹤,使用驗證,但也注意到,並非所有的字符都是合法的,即使輸入格式在技術上確定。

以下文件如果未能通過驗證:

<?xml version="1.0" encoding="utf-8"?> 
<Text>&#x4;</Text> 

這其中也驗證:

<?xml version="1.0" encoding="utf-8"?> 
<Text>&#x32;</Text> 

有關字符的信息使用或避免,this seems interesting

+0

對不起,這是我的錯字,我已經糾正它,它應該是結束;在我的意見。如何過濾或檢查XML文件是否有效,以字符開頭並且&#x? – George2 2009-08-24 14:16:26