2017-10-12 43 views
3

我有一個XML,其中包含包含轉義字符(如<)的屬性字符串。使用XDocument讀取XML時,不要解碼轉義字符

在讀取XDocument這樣的文件並使用.Value訪問屬性內容後,所有這樣的轉義字符都被解碼。 .Value將返回一個包含<而不是&lt;的字符串。

有沒有辦法保持XML字符串中包含的原始文本,而不是解碼它們?

+0

如果XML字符串中不包含兩個,逃脫了''<和轉義'<',那麼你可以簡單地讀取屬性值,你做並逃避它。看起來有[InnerXml'屬性](https://stackoverflow.com/a/1132533/1997232),也許你可以使用'XmlDocument'? – Sinatr

+0

你可以使用類似'new XText(x.Value).ToString()'的方式來轉義它,儘管不能保證結果與源相同。 –

+0

我花了相當一段時間一次試圖做到這一點(正如你所描述的 - 避免擴展包括字符實體在內的所有xml實體),沒有任何成功。 – Evk

回答

0

這不是很漂亮,但我用這個:

var attributeText = attribute.ToString(); 
attributeText = attributeText.TrimPrefix(attributeName); 
attributeText = attributeText.TrimStart('='); 
attributeText = attributeText.Trim('\"');