使用列和值进行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为空。
首先,尝试解析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)))