2009-12-28 305 views
0

如何從下面的xml文件中獲取ArrayList或List的名稱,ID和描述的值和值?VB.NET - 解析XML

我真的不明白在VB.NET中如何處理基於javascript中的邏輯的elimenter。

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 


<Document> 
<TrackList> 
    <plist> 
    <array> 

    <dict> 
    <key>Name</key><string>Michael Jackson</string> 
    <key>ID</key><integer>22</integer> 
    <key>description</key><string>Some text</string> 
    </dict> 

    <dict> 
    <key>Name</key><string>Pink Floyd</string> 
    <key>ID</key><integer>52</integer> 
    <key>description</key><string>Some text</string> 
    </dict> 
    <array> 

    </plist> 
</TrackList> 
</Document> 
+1

什麼版本的VB/.NET的? – 2009-12-28 16:12:26

+0

.NET框架4 – sv88erik 2009-12-28 16:14:17

回答

1

如果您使用的是VB,那麼您可以使用一些內置的構造來簡化查詢。我構建了一個返回匿名類的小應用程序。現在假設結構保持不變,所以字典總是有六個元素。

Dim XML = <?xml version="1.0" encoding="UTF-8" standalone="no"?> 
       <Document> 
        <TrackList> 
         <plist> 
          <array> 
           <dict> 
            <key>Name</key> 
            <string>Michael Jackson</string> 
            <key>ID</key> 
            <integer>22</integer> 
            <key>description</key> 
            <string>Some text</string> 
           </dict> 
           <dict> 
            <key>Name</key><string>Pink Floyd</string> 
            <key>ID</key><integer>52</integer> 
            <key>description</key><string>Some text</string> 
           </dict> 
          </array> 
         </plist> 
        </TrackList> 
       </Document> 

    Dim Elements = From xmlelement In XML...<dict> _ 
        Select Name = xmlelement.Elements.ElementAt(1).Value, _ 
        ID = xmlelement.Elements.ElementAt(3).Value, _ 
        Description = xmlelement.Elements.ElementAt(5).Value 

另一種方法是得到了字典元素的子元素。然後,您可以通過它們來構建鍵/值對。

Dim Elements = From xmlelement In XML...<dict> _ 
        Select xmlelement.Elements.tolist() 

HTH

1

您可以使用XLINQ,像這樣:

Dim xdoc = XDocument.Load(...) 
Dim dicts = xdoc...<dict>.Select(Function(dict) dict.Elements()) 

這會給你XElements的嵌套的IEnumerable。

+0

但是,在查找字典之前,您已經足夠使用tracklist和plist了。因爲,如果標籤字典沒有TrackList,或者如果在dict裏面有dict elimenter,那又怎樣呢? – sv88erik 2009-12-28 16:28:35

+0

你在說什麼? – SLaks 2009-12-28 16:34:24

+0

那麼,「字典」有什麼兒童或父母有相同的標籤(字典)。 但無論如何,感謝您的回覆! +1 – sv88erik 2009-12-28 16:52:56