簡體   English   中英

在C#中使用XPath選擇空白節點

[英]Select whitespace node with XPath in C#

我有以下代碼

var textReader = new StringReader("<root>    </root>);
var settings = new XmlReaderSettings();
settings.IgnoreWhitespace = false;
var reader = XmlReader.Create(textReader, settings);
var doc = new XPathDocument(reader);
var nav = doc.CreateNavigator();
var ws = nav.SelectSingleNode("/root/text()");

注意我的根節點中的空格。

ws為空。 這是為什么 ?

我可以找到一些示例,其中多余的空白節點在查詢結果中蔓延開來,但我找不到其他方法。

謝謝

編輯:如果我的xml是

<root xml:space="preserve">    </root>

該查詢工作正常。 但是在這種情況下,節點的類型為SignificantWhitespace,而不是Whitespace

那些“哈哈”時刻之一...

XPathDocument具有一個帶有XmlSpace枚舉值的構造函數重載。 如果沒有提供XmlSpace值或XmlSpace,則XPathDocument將忽略不重要的空格節點。默認值若要選擇不重要的空格節點,您需要傳遞XmlSpace.Preserve。

參見: http : //timoch.com/blog/2013/05/xpathdocument-and-whitespaces/

暫無
暫無

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

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