2017-07-31 13 views
0

私はInnerTextプロパティは、私は 'で終わるdokumentUrlを読みしようとしています取得XMLノード、

<Root> 
    <hits> 
    <total>4</total> 
    <max_score /> 
    <hits> 
     <_index>offentliggoerelser-prod-20161006</_index> 
     <_type>offentliggoerelse</_type> 
     <_id>urn:ofk:oid:23640715</_id> 
     <_score /> 
     <_source> 
     <dokumenter> 
      <dokumentUrl>url.pdf</dokumentUrl> 
      <dokumentMimeType>application/pdf</dokumentMimeType> 
      <dokumentType>KONCERNREGNSKAB_FOR_OVERLIGGENDE_MODER</dokumentType> 
     </dokumenter> 
     <dokumenter> 
      <dokumentUrl>url.xml</dokumentUrl> 
      <dokumentMimeType>application/xml</dokumentMimeType> 
      <dokumentType>AARSRAPPORT</dokumentType> 
     </dokumenter> 
     <dokumenter> 
      <dokumentUrl>url.pdf</dokumentUrl> 
      <dokumentMimeType>application/pdf</dokumentMimeType> 
      <dokumentType>AARSRAPPORT</dokumentType> 
     </dokumenter> 
     </_source> 
     <sort>1490355849989</sort> 
    </hits> 
    </hits> 
</Root> 

の.xmlで終わるところdocumenturlを読みたい、このXMLドキュメントを、持っています.xml 'のみです。
これ試してみてください、私はLINQ

XDocument mydoc = XDocument.Load(file);  
XDocument xPlatformXml = new XDocument(mydoc); 
XElement xel = xPlatformXml.Element("_source") 
          .Elements("dokumenter") 
          .Where(x => x.Element("dokumentUrl").Value == ".xml") 
          .SingleOrDefault(); 

を使用しようとするが、それは動作しません、誰もがplsは私に

答えて

0

を助けることができる:あなたが値を持っているdescendants nodeを持っているかどうかをチェックすることができます

XDocument xPlatformXml = new XDocument(mydoc); 
XElement xel = xPlatformXml.Element("_source") 
          .Elements("dokumenter") 
          .Where(x => x.Element("dokumentUrl").Value.EndsWith(".xml")) 
          .SingleOrDefault(); 
2

を末尾が.xml

XDocument mydoc = XDocument.Load(file); 
XDocument xPlatformXml = new XDocument(mydoc); 
XElement xel = xPlatformXml.Root.Descendants() 
            .Where(x => x.Name == "dokumentUrl" && x.Value.EndsWith(".xml")) 
            .SingleOrDefault(); 
+0

感謝しました:) –

0

Elementメソッドを使用するには、文書ルートから目的のノードまでのパス全体を指定する必要があります。例:

またはDescendantsメソッドを使用できます。より簡潔ですが、パフォーマンスに影響する可能性があります。

var xel2 = xPlatformXml.Descendants("dokumentUrl") 
    .SingleOrDefault(x => x.Value.EndsWith(".xml")); 
関連する問題