2012-03-29 22 views
0

私の質問は、XPathSelectElementメソッドはxpathクエリのwhere句をサポートしていますか?ここでSystem.Xml.Xpath.XPathSelectElementを使用する場合xpathにwhere句が含まれています

は私がやろうとしています何の例です:

var element = coreXml.XPathSelectElement(configuration/system.serviceModel/client/endpoint[@name='SomeService']); 

私はこれを実行すると、私は次のXMLに基づいた「ヌル」を返されています:

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <system.serviceModel> 
     <client> 
      <endpoint address="http://localhost:40901/SomeService/" binding="basicHttpBinding" contract="SomeContract" name="SomeService"/> 
     </client> 
    </system.serviceModel> 
</configuration> 

よろしく。

答えて

2

問題を再現できません。C#コンソールプロジェクトでXMLサンプルを "XMLFile2.xml"として保存し、XPath式を二重引用符で囲んでXPath式をラップするようにコードサンプルを修正し、次のコードを作成しました。サンプル:

XDocument coreXml = XDocument.Load("../../XMLFile2.xml"); 
    var element = coreXml.XPathSelectElement("configuration/system.serviceModel/client/endpoint[@name='SomeService']"); 
    Console.WriteLine(element == null); 

"False"を出力します。

実際のコードの内容が異なるためです。

+0

はい、正しいですが、例に間違いはありませんが、実際には存在しなかったxmlのセクションにXPathSelectElement()メソッドのxpathクエリが設定されました。だから私が持っていた問題は、私が間違いを含んでいた別のファイルからxpathクエリを使用していたことでした。私の例では、手作業でクエリを書き直しました。したがって、あなたの例はうまくいきました。 –

+0

あなたの助けてくれてありがとうMartin +1 –

+0

私の質問に答えるために、方法は私が持っていたものに似たクエリを受け入れることができます。 –

関連する問題