0

在我的應用程序中,我讀取存儲在獨立存儲中的XML。 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> 

我希望在第一<Fact>讀取第一個<imageName>。這是我的代碼

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

但是root始終爲空。但是,如果我將「Fact」替換爲「Root」,則var root將在xml中包含第一個節點。

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

請告訴我關於錯誤的信息,如果可能,請提供代碼以讀取特定的「imageName」標籤。

回答

0

Element只會搜索直接的孩子。所以,如果你想用這個方法,你必須先檢索根目錄,然後事實:

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