2010-12-19 49 views
0

嘿我想知道是否有人可以幫助保存我的XML文檔的值到一個C#變量。這是爲了提供更大的程序功能。該XML佈局:C#Xml屬性值到字符串變量

<row> 
    <var name="bud" value="45" /> 
    <var name="acc" value="345" /> 
</row> 
<row> 
    <var name="bud" value="45" /> 
    <var name="acc" value="345" /> 
</row> 

我想提取芽的值,並將其存儲爲一個字符串,在我的C#代碼

感謝您的幫助傢伙,我很感激。

+0

您正在尋找[LINQ to XML](http://msdn.microsoft.com/zh-cn/library/bb387098.aspx)。 – SLaks 2010-12-19 23:53:11

回答

1

XML必須是有效的,所以添加了一個根元素。

XML:

<foo> 
<row> 
    <var name="bud" value="45" /> 
    <var name="acc" value="345" /> 
</row> 
<row> 
    <var name="bud" value="45" /> 
    <var name="acc" value="345" /> 
</row> 
</foo> 

代碼:

這將返回一個列表,在你的XML中的所有變量 「VAR」 命名爲 「芽」 的值,並最終創建一個逗號分隔帶有所有值的字符串。

 string xml = "<foo><row><var name=\"bud\" value=\"45\" /><var name=\"acc\" value=\"345\" /></row><row><var name=\"bud\" value=\"45\" /><var name=\"acc\" value=\"345\" /></row></foo>"; 
     XDocument doc = XDocument.Parse(xml); 
     var budValues =(from c in doc.Descendants("var") 
         where c.Attribute("name").Value == "bud" 
         select c.Attribute("value").Value).ToList(); 
     string myBuddy = string.Join(",", budValues); 
+0

這是什麼(xml)? – Ebikeneser 2010-12-20 00:14:26

+0

xml是...好吧,你要加載的XML,我添加它,所以你可以看到。 – BrokenGlass 2010-12-20 00:41:44

1

您的xml無效。它需要一個根節點。

下面是使用XPath簡單的解決辦法:

XmlDocument xDoc = new XmlDocument(); 
xDoc.LoadXml(@" 
    <dataset><row> 
     <var name=""bud"" value=""45"" /> 
     <var name=""acc"" value=""345"" /> 
    </row> 
    <row> 
     <var name=""bud"" value=""45"" /> 
     <var name=""acc"" value=""345"" /> 
    </row></dataset>"); 
XmlNode node = xDoc.SelectSingleNode("/dataset/row/var[@name='bud']"); 
string value = node.Attributes["value"].Value; 

這僅獲得第一個匹配的地方@名稱=「芽」。結帳XPath來調整您的結果。 (它非常強大)

+0

謝謝@ Sam7肯定有幫助 – Ebikeneser 2010-12-20 12:54:27