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");

但根始终为空。但是,如果我用“Root”替换“Fact”,var root 包含 xml 中的第一个节点。

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

请告诉我这个错误,如果可能的话,请向我提供读取特定“imageName”标签的代码。

4

1 回答 1

0

Element只会搜索直系子女。所以如果你想使用这个方法,你必须先检索root,然后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 回答