使用列和值进行XML分析

本文关键字:XML 分析 | 更新日期: 2023-09-27 18:22:01

我需要解析一个XML文件。我对解析文档很陌生。我正在使用XMLReader来解析文档。XML文档的一部分如下所示:

<TABLE>
   <TR>
      <TH>NCOL</TH>
      <TD>Col2</TD>
      <TD>Col3</TD>
      <TD>Col4</TD>
      <TD>Col5</TD>
      <TD>Col6</TD>
      <TD>Col7</TD>
   </TR>
   <TR>
      <TH>3245</TH>
      <TD>Testing</TD>
      <TD />
      <TD>45678-9876</TD>
      <TD />
      <TD />
      <TD />
   </TR>
</TABLE>

有没有办法,我可以将列名与值相关联,所以我想知道在分析文档时,我可以发现3245与NCOL相关联,Testing与Col2相关联,Col3为空。

使用列和值进行XML分析

首先,尝试解析html(假装它是XML)不是一个好主意。但是,您的问题的本质对于解析实际的XML可能仍然有用。

我从来没有在VB.Net中做过linq,但这可能会让你走上正确的道路。它接受xml,将第一行视为头元素,并创建一个字典>:

dim xml = XElement.Parse('the xml string")

dim xml = XElement.Load("your file")
dim items = xml.Elements("TR").FirstOrDefault().Elements() _
    .Select(Function(x, i)New with{ .Index = i, .Xml = x }) _
    .ToDictionary(Function(x) x.Xml.Value, Function(x) xml.Elements("TR").Skip(1) _
                                        .SelectMany(Function(e) e.Elements()) _
                                        .GroupBy(Function(y) y.Parent) _
                                        .Select((Function(y) y.Key.Elements()(x.Index).Value)))