2014-02-18 80 views
2

XDocument.Parse在解析我的XML時保留了不需要的空白區域。看起來我的XML是「不縮進」的,這意味着無論我是否發送LoadOptions.PreserveWhitespace標誌(http://msdn.microsoft.com/en-us/library/bb551294(v=vs.110).aspx),都會保留空白空間。XDocument.Parse保留不需要的空白

這意味着,當我有XML這樣的:

<?xml version="1.0" encoding="UTF-8"?> 
<blah:Root xmlns:blah="example.blah.com"> 
    <blah:Element> 
    value 
    </blah:Element> 
</blah:Root> 

再看看

XDocument xDoc = XDocument.Parse(blahXml); 
xElement xEl = xDoc.Root.Element("Element"); 
string value = xEl.Value; 
print value; 

將打印"\n value\n"而不是"value"

如何使XDocument.Parse總是不管忽略空格我是否不給它縮進或不縮進的XML?

+0

你爲什麼不乾脆用'xEl.Value.Trim()' –

+0

我能做到這一點。我希望有內置的東西,所以我不必做.Trim()每次我嘗試獲得一個值。 – user1803368

回答

1
元件之間

白空間可以被忽略(例如

<root> 
    <foo>foo 1</foo> 
    <foo>foo 2</foo> 
</root> 

可以如果空白將被忽略或與五個子節點root元素節點被解析成一個root元素節點具有兩個foo子元素節點:文本節點,foo元素節點,文本節點,foo元素節點,文本節點),但是如果元素包含一些包含空白的文本數據,則認爲它很重要。因此,您唯一的選擇是在.NET框架中使用像Trim這樣的方法,或者在XPath中使用normalize-space這樣的方法,以在處理元素時刪除空白區域。