2014-01-29 40 views
6

我很難從XElement的內文中獲取正確的值。首先,這裏是我正在使用的XML。這是我們的工作流程中產生的生產數據的副本。換句話說,我不能改變XML,我只能解析它。我希望獲得的無限文本元素裏面的數據看起來像XML,但事實並非如此。這是來自生成XML的工具的直接文本。該元素被稱爲<creatorshapeutildata來自XElement的Innertext?

Picture of XML data

這裏是代碼行我已經試過:

CreatorShapeUtilData = element.Descendants("creatorshapeutildata").Single().Value; 

我也試過這樣:

CreatorShapeUtilData = element.Descendants("creatorshapeutildata").First().Value; 

我已經也試過這個:

CreatorShapeUtilData = element.Element("creatorshapeutildata").Value; 

不幸的是,被在任何情況下返回的值是這樣的:

33012-1true#FFFF003#FFFFFF2743337743358

我需要返回的值看起來像這樣:

"<creatorData type="object"><type type="int">33012</type>..." 

這片我的工作是是使用XDocument,XElement等的更大程序的一部分。我知道XmlElement具有InnerText屬性,但我認爲XElement沒有,因爲我似乎無法在Intellisense中找到它。

那麼,有沒有什麼可能的方法來抓取creatorshapeutil標籤之間的確切文本?

回答

17

您正試圖獲得與原始XML內容完全相反的屬性:原始XML內容。

您可以通過撥打element.ToString()來獲取包括外部節點在內的內容。

如果你想排除外部標籤,你可以撥打String.Concat(element.Nodes())