2013-01-10 3 views
-1

나는 이와 같은 xml 파일을 가지고 있습니다.XmlReader를 사용하여 XML 파일 읽기

<response>  
    <status>ok</status>\r\n 
    <number>125698</number> 
    </response> 

상태가 "ok"이면 번호를 읽고 싶습니다. 은 그래서 이것은 내 코드

using (XmlReader reader = XmlReader.Create(new StringReader(Response))) 
       { 
        reader.ReadToFollowing("response"); 
        reader.MoveToFirstAttribute(); 

        reader.ReadToFollowing("status"); 
        output.AppendLine(reader.ReadElementContentAsString()); 
       } 
       OrderResponse = output.ToString(); 
       OrderResponse = OrderResponse.Replace("\r\n", ""); 

       if (OrderResponse == "ok") 
       { 
        using (XmlReader reader = XmlReader.Create(new StringReader(Response))) 
        { 
         reader.ReadToFollowing("response"); 
         reader.MoveToNextAttribute(); 

         reader.ReadToFollowing("number"); 
         output.AppendLine(reader.ReadElementContentAsString()); 
        } 

        string orderNo = output.ToString(); 
        orderNo = orderNo.Replace("\r\n", ""); 
        HttpContext.Current.Session["orderNo"] = orderNo; 

하지만 "ok125698"와 같은 orderNo 출력됩니다. 하지만 "125698"만 입력하면됩니다. 읽는 방법?

+0

제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –

+1

왜 XML 파일에'\ r \ n'이 있습니까? –

답변

2

두 번째 호출 전에 을 재설정하지 않아 output에 "ok"와 "125698"두 줄이 포함되도록합니다. 그런 다음 orderNo을이 문자열로 설정하고 \r\n을 대체하여 "ok125698"을 생성합니다.

아마도 다른 output 변수를 사용하거나 그 내용을 지우려고하셨습니까?

+0

http://itzonesl.blogspot.com/2012/12/read-xml-file-in-cnet.html – chamara

0

이미 그것에 상태 값을 추가 한 후 출력 변수에 주문 번호를 추가하고 있기 때문에 이런 일이 :

reader.ReadToFollowing("status"); 
output.AppendLine(reader.ReadElementContentAsString()); 

reader.ReadToFollowing("number"); 
output.AppendLine(reader.ReadElementContentAsString()); 

그것은 할 필요가 더 이상보다이 코드. 이것을 시도하십시오 :

using (XmlReader reader = XmlReader.Create(new StringReader(Response))) 
{ 
    reader.ReadToFollowing("response"); 

    reader.ReadToFollowing("status"); 
    string status = reader.ReadElementContentAsString(); 
    if (status == "ok") 
    { 
     reader.ReadToFollowing("number"); 
     string orderNo = reader.ReadElementContentAsString(); 
     HttpContext.Current.Session["orderNo"] = orderNo; 
    } 
}