2013-12-16 80 views
1

我創建一個字符串一個XmlReader這個字符串包含字符串格式的XML飼料刪除」逃避串字符的XmlReader

的字符串中XML的一個片段是:

<?xml version=\"1.0\" encoding=\"utf-8\"?> 
<menu> 
    <menuitem name=\"Tools\"> 
    </menuitem> 
</menu> 

因此,當下面的行中,執行:生成

XmlReader myXmlReader = XmlReader.Create(myInputString); 

此錯誤:

Illegal characters in path. 

該問題是由於字符串中的轉義字符(\")。我怎樣才能解決這個問題?

謝謝。

回答

11

你問的每一句話都是錯誤的。

您正在看到\個字符,因爲調試器將字符串顯示爲有效的字符串文字。
字符串本身很好。如果您將其打印到控制檯或使用Text Visualizer,您將看到該字符串的原始值。

XmlReader.Create()正在拋出一個異常,因爲它需要一個文件的路徑,而不是源的字符串。
要解析XML源的字符串,請從該字符串中創建一個新的StringReader,然後通過該字符串。


最後,XmlReader是一個非常惱人的API。
您應該使用LINQ to XML來代替;只需撥打XElement.Parse()即可。

+0

糟糕,沒有關注InputUri作爲XmlReader的參數。我已經繼承了這個代碼,所以試圖保持最低限度的變化。感謝您的建議。有用。 – Farhan