2011-12-10 1 views
0

약간의 도움이 필요합니다. 나는 웹에서 XML 파일을하고 난 해당 파일 전화 :웹에서 여러 XML 노드를 읽고 비교하는 방법 #

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

변경 IF 두 & 년대 아니라 하나입니다

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

관련 문제