繁体   English   中英

VB.NET-解析XML

[英]VB.NET - Parsing XML

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

我不太了解如何基于javascript中的逻辑在VB.NET中完成对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>

您可以使用XLINQ,如下所示:

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

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

如果使用的是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM