2011-09-13 10 views
0

私は次のasp.netコードを書いています。カラーノードからのminvalueの値とチャートノードからのbgcolorへのアクセス方法は?asp.netのxmlノード値にアクセスする際の問題

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> 

答えて

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; 

EDITこれを試してみてください:このコードは動作するはずですが、おそらくただ、XPathを使用し

+0

「System.Xml.XmlNode」に次のエラーが表示されています'GetElementsByTagName'の定義と、 'System.Xml.XmlNode'タイプの最初の引数を受け入れる拡張メソッド 'GetElementsByTagName'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?) – mahesh

+0

@mahesh、申し訳ありません。そのコードを編集して今すぐ動作するはずです – musefan

+0

System.Xml.XmlNodeList.this [int]の無効な引数が一番オーバーロードされたメソッド – mahesh

1

あなたはここに行くと、あなたのXMLフラグメントを貼り付けることができます。

Online XPath Tester

あなたはあなたとあなたの値を選択できることを理解するであろうこのようなXPATHは、たとえば:

//Chart/Value 
+0

非常に有用な返信をありがとう、次のコードを介してそのminValueにアクセスできますか? var minValue = doc.SelectSingleNode( "// Chart/colorRange/color/@ minValue")。値。 – mahesh

+0

オンラインテスターでテストしてみてください;-)ここにはhttp://www.mizar.dk/XPath/Default.aspxがあります –

2

を掲載するXPathの提案のいずれかを使用して容易になるだろう:

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

彼はminValue属性を探していません値。 –

1
System.Xml.Linqから

使用XDocumentクラス、あなたはこのようにそれを行うことができるようになります:

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

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

彼はValueノードの内容を探していますが、彼は665 –

+0

を抽出しようとしています。問題はありません - doc.Root.Element( "value")。 あなたは彼の質問を読んだことがありますか? "グラフノードからカラーノードとbgcolorからminvalueの値にアクセスする方法?" – mironych

+0

あなたは正しいです、私は彼のコードに間違っていました:XmlNodeList xmlnode = doc.GetElementsByTagName( "value");これはminValueですべてを見ません。申し訳ありません –

関連する問題