2013-06-12 109 views
-2

我有一個問題,我仍然無法解決。如何解析XML元素到XElement

我有一個來自一個TextBox文本,這是類似的東西:

<assemblyIdentity name="MyAssemblyName" publicKeyToken="my1231key" /> 

我想是因爲我需要做執行上的一些變化,並改變其format.I加載它作爲一個的XElement也想獲得它的屬性值列表。

將它分配給可以通過字符串初始化的東西是不可能的。圍繞屬性值的引號是問題(也可能是其他事物)。

簡單地說,我將它作爲來自TextBox.Text的內容,我想將它加載到XElement,以便我可以使用它。

回答

2

您可以使用XElement.Parse方法

XElement rootElement = XElement.Parse(textbox1.Text); 

更多信息:http://msdn.microsoft.com/en-us/library/bb538477.aspx

+0

如果自動將它,如果我直接從textBox.Text獲取的價值我一直在思考。 現在我正在爲該方法進行單元測試,我不知道如何模擬它,所以我可以將 字符串顯式傳遞給方法,這樣我就可以完成測試。 到目前爲止唯一可能的方式是使用> < "轉義符號,但我不知道這是否將等同於來自textBox.Text的內容 – mathinvalidnik

0

你試過

var element = XElement.Parse(myTextBox.Text); 

爲我工作。

或者這種方法有什麼問題嗎?

+0

我無法在單元測試中模擬它。當我執行單元測試時,我必須以某種方式將靜態字符串值傳遞給該方法,以便可以在最後進行Assert。 – mathinvalidnik

+1

你能否更新你的問題,包括你的單元測試需求(或者可能會問一個完全不同的問題)。人們已經回答了問題,但你想要回答的問題不是你問的問題。還要提供儘可能多的關於您已經嘗試過的信息,並向我們展示您想要測試的方法(或向我們展示它的外觀),同樣,爲測試方法展示相同的內容(您認爲它應該看起來如何喜歡)。謝謝。 –

0
// string from textbox 
string xml = "<assemblyIdentity name=\"MyAssemblyName\" publicKeyToken=\"my1231key\" />"; 

,這裏是解析元素:

var assemblyIdentity = XElement.Parse(xml);  
var name = (string) assemblyIdentity.Attribute("name"); // MyAssemblyName 
var token = (string) assemblyIdentity.Attribute("publicKeyToken"); // my1231key