2011-04-19 45 views
0

當我做XPathSelectElement(「/ root/title」)。ToString()也選擇xml名稱

XPathSelectElement("/root/title").ToString() 

我得到例如<title>this is an <strong>example</strong></title>。但我不想在文本週圍得到<title>

當我做

XPathSelectElement("/root/title").Value 

然後它只獲得沒有<strong></strong>的文本

如何解決這個問題?

+0

我把你的問題標記爲C#。我是對的,還是這個VB.NET? – 2011-04-19 09:21:49

+0

可能的重複[獲取XElement的InnerXml的最佳方式?](http://stackoverflow.com/questions/3793/best-way-to-get-innerxml-of-an-xelement) – 2011-04-19 09:22:50

+0

這是C#謝謝 – Ozkan 2011-04-19 09:23:00

回答

0

從內存:

XPathSelectElement("/root/title/text()").ToString() 

或者,您可以選擇所有子節點(/root/title/*),並加入他們的字符串表示

+0

編號與'.Value'相同。 – 2011-04-19 09:34:36

+0

我還在打字我猜:) – sehe 2011-04-19 09:35:13

+0

第一個不起作用,我得到一個錯誤,但不知道究竟是什麼。第二種:如果xml節點中只有純文本,'/ root/title/*'會給出nullreferenceexception – Ozkan 2011-04-19 10:34:24

0

您可以創建一個XmlReader並從中讀取內部XML。

XElement element = doc.XPathSelectElement("/root/title"); 
XmlReader reader = element.CreateReader(); 
reader.MoveToContent(); 
string innerXml = reader.ReadInnerXml(); 
+0

是的,可以做到。感謝您的回覆 – Ozkan 2011-04-19 10:55:34