在我的应用程序中,我正在读取存储在独立存储中的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始终为null。但是,如果我用“Root”替换“Fact”,则var root包含xml中的第一个节点。
XDocument readedDoc = XDocument.Load(isoStream);
var root = readedDoc.Element("Root");
请告诉我有关错误的信息,如果可能,请提供代码以阅读特定的“imageName”标记。
答案 0 :(得分:0)
Element
只会搜索直接的孩子。因此,如果您想使用此方法,您首先要检索root,然后事实:
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();