在asp.net中访问xml节点值的问题

时间:2011-09-13 11:39:57

标签: c# asp.net xml xmldocument

我编写了以下asp.net代码,如何从颜色节点访问minvalue的值,从图表节点访问bgcolor?

XmlDocument doc = new XmlDocument();
string xmlFile = System.Web.HttpContext.Current.Server.MapPath("Data/Example.xml");
doc.Load(xmlFile);
XmlNodeList xmlnode = doc.GetElementsByTagName("value");

我的XML看起来像这样:

<Chart editMode='1' bgColor='FFFFFF' bgAlpha='0' showBorder='0' upperLimit='1000' >
   <colorRange> 
      <color minValue='0' maxValue='100' code='F6BD0F' />
   </colorRange>
   <value>665</value>
</Chart>

4 个答案:

答案 0 :(得分:2)

只需使用XPath:

var minValue = doc.SelectSingleNode("//Chart/colorRange/color/@minValue").Value;

答案 1 :(得分:1)

你可以到这里粘贴你的XML片段:

Online XPath Tester

然后您将意识到您可以使用像这样的XPATH选择您的值,例如:

//Chart/Value

答案 2 :(得分:1)

试试这个..

        XmlNode chartNode = doc.GetElementsByTagName("Chart")[0];
        XmlNode colorNode = doc.GetElementsByTagName("Chart")[0].ChildNodes[0].ChildNodes[0];

        string minvalue = colorNode.Attributes["minValue"].Value;
        string bgColor = chartNode.Attributes["bgColor"].Value;

编辑:此代码现在应该可以使用了,但是使用其中一个发布的XPath建议可能会更容易

答案 3 :(得分:1)

使用System.Xml.Linq中的XDocument类,你可以这样做:

var minValue=doc.Root.Element("colorRange").Element("color").Attribute("minValue").Value;

var bgColor = doc.Root.Attribute("bgColor").Value;