Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从文件中读取多个xml元素?_Xml_Vb.net_Xmldocument - Fatal编程技术网

如何从文件中读取多个xml元素?

如何从文件中读取多个xml元素?,xml,vb.net,xmldocument,Xml,Vb.net,Xmldocument,大家好,我有这个xml文档,我想提取第一个或第二个应用程序文件路径和文件名等 DocumentElement.SelectSingleNode("/InstallerList/Installer/File_Path").InnerText 但我只得到了第一个应用程序信息,从来没有第二个,我试着玩过 DocumentElement.SelectNodes("//Installer") 在它的末尾加上一个整数,这样我就可以循环了,但它似乎不喜欢这样。有什么想法吗 <?xml version

大家好,我有这个xml文档,我想提取第一个或第二个应用程序文件路径和文件名等

DocumentElement.SelectSingleNode("/InstallerList/Installer/File_Path").InnerText
但我只得到了第一个应用程序信息,从来没有第二个,我试着玩过

DocumentElement.SelectNodes("//Installer")
在它的末尾加上一个整数,这样我就可以循环了,但它似乎不喜欢这样。有什么想法吗

<?xml version="1.0" encoding="utf-8"?>
<InstallerList>
 <Installer Name="First Application">
   <FilePath>C:\</FilePath>
   <Third_Parameter>etc</Third_Parameter>
   <Forth_Parameter>etc</Forth_Parameter>
 </Installer>
 <Installer Name="Second Application">
   <FilePath>etc</FilePath>
   <Third_Parameter>etc</Third_Parameter>
   <Forth_Parameter>etc</Forth_Parameter>
 </Installer>
</InstallerList>

C:\
等
等
等
等
等

如果只想选择一个
文件路径
元素,给定一些已知的键值,例如安装程序的
名称
属性,可以向XPath中添加一个条件以缩小结果范围,如下所示:

DocumentElement.SelectSingleNode("/InstallerList/Installer[@Name='First Application']/FilePath").InnerText
或者,您可以简单地选择所有
FilePath
元素,然后循环遍历它们,如下所示:

For Each node As XmlNode In DocumentElement.SelectNodes("/InstallerList/Installer/FilePath")
    Dim path As String = node.InnerText
    ' ...
Next

好的,谢谢你对初学者的帮助,当我尝试DocumentElement时。选择SingleNode(“/InstallerList/Installer[@Name=“+app+”]/FilePath”)。InnerText,其中app是一个字符串,包含名称属性的内容,我得到一个表达式必须计算为节点集错误。有什么想法吗?它对我有用。您是否忘记了
app
值周围的开始和结束单引号?