嘿,我想知道是否有人可以帮助将我的xml doc的值保存到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>
我想提取bud的值并将其作为字符串存储在我的c#code
中感谢任何帮助,我很感激。
答案 0 :(得分: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>
<强>代码:强>
这将返回一个List,其中包含名为“bud”的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);
答案 1 :(得分: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;
这只得到@ name ='bud'的第一场比赛。结帐XPath以调整您的结果。 (它非常强大)