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

本文关键字:节点 问题 xml 访问 asp net | 更新日期: 2023-09-27 18:08:21

我写了下面的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>

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

使用XPath:

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

试试这个…

        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建议可能会更容易一些

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

在线XPath测试器

,那么您就会意识到可以使用这样的XPATH来选择值,例如:

//Chart/Value

使用System.Xml.Linq中的XDocument类,您将能够这样做:

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