Проблема с доступом к значению узла xml в asp.net - PullRequest
0 голосов
/ 13 сентября 2011

Я написал следующий код 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 ]

2 голосов
/ 13 сентября 2011

Просто используйте XPath:

var minValue = doc.SelectSingleNode("//Chart/colorRange/color/@minValue").Value;
1 голос
/ 13 сентября 2011

Используйте класс XDocument из System.Xml.Linq, и вы сможете сделать это следующим образом:

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

var bgColor = doc.Root.Attribute("bgColor").Value;
1 голос
/ 13 сентября 2011

Попробуйте это ..

        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, опубликованных

1 голос
/ 13 сентября 2011

вы можете пойти сюда и вставить свой XML-фрагмент:

Онлайн-тестер XPath

, тогда вы поймете, что можете выбрать свое значение с помощью XPATH, например,например:

//Chart/Value
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...