2012-12-20 2 views
3

XML을 처음 사용하고 HttpWebResponse에서 XML 응답을 읽는 데 문제가 있습니다. 나는 an_id 값을 추출하여 목록에 저장 찾고 있어요XML 속성을 목록으로 읽기

<RESPONSE version="1.2"> 
<RESULTS> 
    <AN an_type="C" 
    an_id="783hdryfdg56a2" 
    an_num="1" 
    an_status="100" /> 
    <RESULTS> 
</RESPONSE> 

: 여기

다시 반응이다. 이 일을하지만 int로 xmlnodelist에 대한 얻을 것으로 보인다 있지만 [ "an_id을"] 노드를 생각하기 시작하는 문자열

List<int> IDs = new List<int>(); 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(returnValue); 
XmlNodeList nodes = doc.SelectNodes("SEARCH_RESULTS/LOAN"); 
LoanIDs.Add(Convert.ToInt32(nodes["an_id"].InnerText)); 

또한 한 번 an_id 년대가 목록에 추가 할 수있는 방법들이 있습니다에게 있습니다. XML 코드와 문자열 인 xml으로

<INPUT> 
     <LOGIN API_ID=""cat"" API_PASSWORD=""dog"" /> 
    <REQUEST> 
     <AN an_id=""@anID"" /> 
     <AN an_id=""@anID"" /> 
     ....foreach one in list it adds a new node with the value 
    </REQUEST> 
</INPUT> 
+0

SelectNodes' 문서와 일치하지 않는'의 XPath 표현식. 그것은 아마도'RESPONSE/RESULTS/AN'이어야합니다. – Oded

+1

귀하의 질문이 WebResponse와 전혀 관련이 없으므로 귀하의 제목을 근본적으로 바꿨습니다. 메모리에있는 문자열에서 XML을 가져온 경우 똑같은 문제가 발생했을 것입니다. –

+0

Xml은 WebResponse에서 가져온 것입니다. 코드의 일부만 표시하지 않았습니다. 나는 응답을 받고 응답 (xml)을 문자열에 저장한다. – Jt2ouan

답변

3

: 목록에서 foreach는 항목이 같은 새로운 XML에 대한 aparameter로 사용

var ids = XDocument.Parse(xml). 
    Descendants("AN"). 
    Select(e => (string)e.Attribute("an_id")). 
    ToList(); 

그러나, 샘플에서는 보이지 않았다 그 속성은 항상 정수입니다. 전환에 대한 확신이 있습니까? 귀하의 최근 코멘트가 주어 졌을 때 속성의 형변환을 (문자열)로 변경했습니다.

당신이 current은 추가 할 사람을 포함하는 부모 요소 인 상태 목록을 재사용 할

:

current.Add(ids.Select(i => new XElement("AN", new XAttribute("an_id", i)))); 
+0

yesah 나는 그들이 문자열이어야한다고 생각한다. – Jt2ouan

관련 문제