2011-08-12 3 views
0

XML로는 거의 다루지 않는 초보자 질문입니다. Subsonic API를 쓰려고 노력 중입니다. xml은 다음과 같습니다.XML과 셀렉트 노드

<?xml version="1.0" encoding="UTF-8"?> 
<subsonic-response xmlns="http://subsonic.org/restapi" status="ok" version="1.6.0"> 
    <indexes lastModified="1313158157783"> 
    <index name="A"> 
     <artist name="Albums" id="5c5c3139322e3136382e322e31305c566f6c756d655f315c4d757369635c416c62756d73"/> 
    </index> 
    <index name="S"> 
     <artist name="Singles" id="5c5c3139322e3136382e322e31305c566f6c756d655f315c4d757369635c53696e676c6573"/> 
    </index> 
    </indexes> 

</subsonic-response> 

색인 노드를 얻으려고합니다.

나는 이것을 시도하고 있지만 확실하지는 않습니다. SelectNodes 및 SelectSingleNode 모두 emtpy를 반환합니다. 나는 간단한 것을 놓치고 있다고 확신한다.

XmlNamespaceManager nsmgr = new XmlNamespaceManager(index.NameTable); 
nsmgr.AddNamespace("", "http://subsonic.org/restapi"); 

XmlNodeList xnList = index.SelectNodes("/subsonic-response/indexes/index", nsmgr); 
XmlNode mainnode = index.SelectSingleNode("/subsonic-response", nsmgr); 

foreach (XmlNode xn in xnList) 
{ 
} 

나는 함께하고 namespacemanager없이 시도하고이 같은 일

답변

3

는 비어를 사용해보십시오 XML 네임 스페이스 접두사 :

XmlNamespaceManager nsmgr = new XmlNamespaceManager(index.NameTable); 
nsmgr.AddNamespace("x", "http://subsonic.org/restapi"); 

XmlNodeList xnList = index.SelectNodes("/x:subsonic-response/x:indexes/x:index", nsmgr); 
XmlNode mainnode = index.SelectSingleNode("/x:subsonic-response", nsmgr); 

내가 당신과 문헌, 같은 대답을했다 응답에 대한 (기본) XML 네임 스페이스 접두사로

+0

완벽한 , 감사! – Wil

1

의 방법에 대해 :

nsmgr.AddNamespace("x", "http://subsonic.org/restapi"); 

그리고 :

XmlNodeList xnList = index.SelectNodes("/x:subsonic-response/x:indexes/x:index", nsmgr); 
+0

감사를 빈 문자열을 사용하려고 시도에 문제가 있었다 더블 "대답"내가 할 수있는 소원 한 – Wil

관련 문제