2011-12-10 6 views
0

少し助けが必要です。私は、WebでのXMLファイルを持っているし、私はそのファイルを呼び出す:複数のXMLノードをcでWebから読み込んで比較する#

String URLString = "http://myweb.tld/myfile.xml"; 
var xmlDocument = new XmlDocument { XmlResolver = null }; 
xmlDocument.Load(URLString); 

とリーダー作品、エラーなし。

今私はXMLにいくつかのタグを読みたいので、私は使用します。私は読んしようとすると

XmlNodeList xnCheck = xmlDocument.SelectNodes("/blab/bla"); 
foreach (XmlNode xn in xnCheck) 
if ((Text1.Text == xn["Name"].InnerText) & (Text2.Text == xn["Pwd"].InnerText)) 
{ 
    status.Text = "Correct"; 
} 
else status.Text = "Wrong data"; 
break; 
} 

、私はいつも「間違ったデータを」取得し、私は理由を理解していません。

これはXMLファイルです:

<?xml version="1.0" encoding="UTF-8"?> 

<blap> 

<bla> 
<Name>name1</Name> 
<Pwd>12345678</Pwd> 
</bla> 

<bla> 
<Name>name2</Name> 
<Pwd>87654321</Pwd> 
</bla> 

</blap> 

誰も私は、この問題の解決に役立つことはできますか?

答えて

1

変更した場合は2 &年代だけではなく一つです

if ((Text1.Text == xn["Name"].InnerText) && (Text2.Text == xn["Pwd"].InnerText)) 
{ 
    status.Text = "Correct"; 
} 

ことにします。

2

私はあなたの問題は、あなたがして、問題を解決することができるはずです。このライン上の&

if ((Text1.Text == xn["Name"].InnerText) & (Text2.Text == xn["Pwd"].InnerText)) 

であると信じています:

if ((Text1.Text == xn["Name"].InnerText) && (Text2.Text == xn["Pwd"].InnerText)) 

あなたはまた間違ったノードを選択しています。次

.SelectNodes("/blab/bla") 

は次のようになります。

.SelectNodes("/blap/bla") 

そしてもう一つ:

あなたは正しい一致を発見した後、あなたはループから抜け出す必要がありますし、あなただけのステータスを更新する必要があります一度。ここであなたのループを書き直す必要があります:

 string sStatus = "Wrong data"; 

     foreach (XmlNode xn in xnCheck) 
     { 
      if ((Text1.Text == xn["Name"].InnerText) && (Text2.Text == xn["Pwd"].InnerText)) 
      { 
       sStatus = "Correct"; 
       break; 
      } 
     } 
     status.Text = sStatus; 
+0

ありがとう、私は解決しました – devilkkw

関連する問題