我正在制作一个应用程序来从 xml 中提取数据,并通过它们对不同文件夹中的文档进行分类。我使用 XmlNodeList 和 XmlElement 来获取元素的属性,但是我使用两个 for 循环来实现这一点,我想知道是否可以通过 xml 结构,以便在单个循环中我可以得到“日期”和“rfc”。我正在 VB.NET 中制作应用程序
XML 结构
<?xml version="1.0" encoding="utf-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" fecha="2017-09-29T10:52:53">
<elemento rfc="XXXXXXXXXXXX" nombre="Nombre">
</elemento>
</root>
到目前为止我的代码
Dim doc As XmlDocument
Dim root As XmlNodeList
Dim elemento As XmlNodeList
Dim fecha As XmlElement
Dim rfc As XmlElement
doc = New XmlDocument()
doc.Load("C:\Users\Usuario\Desktop\file.xml")
root = doc.GetElementsByTagName("root")
elemento = doc.GetElementsByTagName("elemento")
For Each fecha In root
strFecha = fecha.GetAttribute("fecha")
Next
For Each rfc In elemento
strRFC = rfc.GetAttribute("rfc")
Next
为此,没有什么比 linq to XML 更好的解决方法了!!!
看看,我做了一个小例子程序,用你的例子,演示如何获取你想要的值。
我们所做的基本上是利用 LINQ 已经知道如何读取 xml 的事实,并在此基础上获得我们想要的部分。对于 Linq,每个节点都是一个元素 (XElement)。这样,我们就可以得到根节点,然后从那里去寻找我们需要的其他东西。
由于不清楚一个元素是否可以多次出现,因此每个元素都包含另一个 XML,在这种情况下,这将允许多次获取该值。