0

私のアプリでは、分離ストレージに保存されている XML を読んでいます。XMLは次のとおりです

  <?xml version="1.0" encoding="utf-8"?>
    <Root>
      <Fact>
        <imageName>tumblr_inline_mp8rloanHl1qz4rgp.jpg</imageName>
        <ImageURL>http://mline_mp8rloanHl1qz4rgp.jpg</ImageURL>
        <imageTime>Mon, 01 Jul 2013 10:42:59 +0530</imageTime>

        <imageRef>http://media.tumblr/5bae62d98c52c367/tumblrgp.jpg</imageRef>
        <imageCopied>No</imageCopied>
      </Fact>
  <Fact>
    <imageName>tumblr_mp8dtoGGFs1qkvbwso1_500.png</imageName>
    <ImageURL>http://25.media./tumblr_mp8dtoGGFs1qkvbwso1_500.png</ImageURL>
    <imageTime>Mon, 01 Jul 2013 08:28:00 +0530</imageTime>

    <imageRef>http://simple.wikipedia.org/wiki/Moondyne_Joe</imageRef>
    <imageCopied>No</imageCopied>
  </Fact>
    </Root>

<imageName>先を先に読みたい<Fact>。これが私のコードです

XDocument readedDoc = XDocument.Load(isoStream);
                var root = readedDoc.Element("Fact");

ただし、ルートは常に null です。ただし、「Fact」を「Root」に置き換えると、var root には xml の最初のノードが含まれます。

XDocument readedDoc = XDocument.Load(isoStream);
                var root = readedDoc.Element("Root");

エラーについて教えてください。可能であれば、特定の「imageName」タグを読み取るコードを提供してください。

4

1 に答える 1

0

Element直接の子のみを検索します。したがって、このメソッドを使用する場合は、最初にルートを取得してから Fact を取得する必要があります。

XDocument readedDoc = XDocument.Load(isoStream);
var root = readedDoc.Element("Root");
var fact = root.Element("Fact");

Descendantsまたは、代わりに使用してツリー全体を参照できます。

XDocument readedDoc = XDocument.Load(isoStream);
var fact = readedDoc.Descendants("Fact").First();
于 2013-07-02T14:21:11.813 に答える