2013-10-29 6 views
0

서버에서 데이터를 가져 와서 파일에 쓰고 파일을 읽어서 포함 된 데이터를 가져 오는 프로그램을 C#으로 작성하고 있습니다. 마지막 부분이 문제입니다. 내 XML 파일 스트림을 가져오고 XML 파일은 정상적으로 보이지만 루트 노드를 제외하고 내 프로그램은 모든 700 개의 자식 노드를 계산하는 목록에도 불구하고 자식 노드를 허용하지 않습니다. 나의 철자법, 묵상, 나무를 조사하고 있었다. .. 아무것도 지금까지 일하지 않았다.자식 노드가 허용되지 않습니다.

XML 데이터 :

<?xml version="1.0" encoding="UTF-8"?> 
<uniprot xmlns="http://uniprot.org/uniprot" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uniprot.org/uniprot http://www.uniprot.org/support/docs/uniprot.xsd"> 
    <entry dataset="Swiss-Prot" created="2005-03-01" modified="2013-10-16" version="51"> 
    <accession>P69430</accession> 
    <accession>O65938</accession> 
    <accession>P27856</accession> 
    <name>TATA_ECO57</name> 
    <protein> 
     <recommendedName> 
     <fullName>Sec-independent protein translocase protein TatA</fullName> 
     </recommendedName> 
    </protein> 

프로그램 :

Datapath = startupPath + "\\" + Data[0, 0] + ".xml"; 
XmlDocument XMLdoc = new XmlDocument(); 
      XMLdoc.Load(Datapath); 
XmlNodeList xnList = XMLdoc.SelectNodes("//*"); //the list shows all 700 entries so the path etc are correct 
var node = XMLdoc.SelectSingleNode("uniprot/entry/protein/recommendedName/fullName").InnerText; 

가 최대한 빨리 uniprot에서 자식 노드를 ADRESS 시도로, 그것은 나를 미치게하는 단지 널 (null)입니다. 누구든지 제발 도와 줄 수 있니?

답변

4

네임 스페이스를 사용해 보셨습니까?

 XmlDocument doc = new XmlDocument(); 
     XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); 
     nsmgr.AddNamespace("ns", "http://uniprot.org/uniprot"); 
     var node = doc.SelectSingleNode("//ns:exampleNode", nsmgr); 
+0

효과가있었습니다. 고맙습니다. – MeepMania

0

보십시오이 하나있는 XmlNode 노드 = doc.SelectSingleNode ("// uniprot // 항목/단백질/recommendedName/fullName의"); node.InnerXml;

관련 문제