【问题标题】:VB.NET - Parsing XMLVB.NET - 解析 XML
【发布时间】:2009-12-29 02:17:09
【问题描述】:

如何从下面的 xml 文件中获取名称、ID 和描述的键和值的 ArrayList 或 List?

我不太明白如何在 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>

【问题讨论】:

  • 什么版本的VB/.NET?

标签: xml vb.net


【解决方案1】:

如果您使用的是 VB,那么您可以使用一些内置结构来简化查询。我构建了一个返回匿名类的小应用程序。现在假设结构保持不变,所以 dict 总是有六个元素。

    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

另一种方法是获取 dict 元素的子元素。然后你可以通过它们来构建键/值对。

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

HTH

【讨论】:

    【解决方案2】:

    你可以像这样使用 XLINQ:

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

    这将为您提供一个嵌套的 XElements IEnumerable。

    【讨论】:

    • 但在你寻找 dict 之前,足以与 tracklist 和 plist 一起使用。因为,如果是没有TrackList的标签dict是elimenter,或者dict里面又是dict elimenter呢。
    • 那么,“dict”有相同标签(dict)的孩子或父母呢?但无论如何,谢谢你的回复! +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多