2012-05-08 6 views
1

私はこのは、XPathとXmlementを解析することはできません正しく

XmlElement root = proxy.CallWebservice(); 

XmlNodeList nodeList; 
nodeList = root.SelectNodes("/Application/Applicants"); 
foreach (XmlNode applicants in nodeList) 
{ 
    Console.WriteLine(applicants.InnerXml); 
} 

問題のようにコードを持って、私のクライアント側 の

<Application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <Type>C</Type> 
    <AppDate>2012-05-01T00:00:00</AppDate> 
    <Applicants> 
     <ID>1234</ID> 
    </Applicants> 
    <Applicants> 
     <ID>0</ID> 
    </Applicants> 
    <Status>O</Status> 
</Application> 

下のようなxmlementを返すWebサービスを持っている:私は得ることができません何かを出力する。

しかし

私はこの

File.WriteAllText(@"d:\output.xml", root.OuterXml.ToString()); 
XmlDocument doc = new XmlDocument(); 
doc.Load(@"d:\output.xml"); 
XmlElement root = doc.DocumentElement; 

XmlNodeList nodeList; 
nodeList = root.SelectNodes("/Application/Applicants"); 
foreach (XmlNode title in nodeList) 
{ 
    Console.WriteLine(title.InnerXml); 
} 

をすればそれが動作、私はちょうどノードを読み取るために、ファイルへの書き込みを持っている必要はありません。私は間違って何をしていますか?

+0

ました。 –

+0

XPathの問題は、通常、名前空間に関する問題です。名前空間が「オフ」の場合は機能しますが、「オン」の場合はxmlプロセッサーに名前空間を登録するまで失敗します。 「xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"」属性を削除してみることができますか。これは手がかりを与えます。 – Julian

+0

私は推測しますが、Proxy.WebServiceとDocument.DocumentElementが同じノードではないと思われます。 –

答えて

0

私は を使用しなければならなかったXmlNodeList nodeList;私のルートとして

nodeList = root.SelectNodes("Applicants"); 

あなただけのこれまで非稼働サンプルのためのXmlElementを使用しているのに対し、あなたは常にXmlDocumentにファイルをロードしているので、それはだ場合、私はちょうど疑問アプリケーション

関連する問題