如何使用PowerShell脚本从xml获取节点值?

时间:2018-09-03 11:45:24

标签: xml powershell

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="MultipleSuite">
<suite-files>
    <suite-file path="samplexml_1.xml"></suite-file>
</suite-files>
</suite>
<!-- Suite -->

此处如何获取“ samplexml_1.xml”名称?

3 个答案:

答案 0 :(得分:1)

使用XPath和the Select-Xml cmdlet

$suite_file = Select-Xml "//suite-file" yourfile.xml

这将选择<suite-file>个节点的数组(在您的示例中,只有一个匹配项)。您可以像这样访问结果:

$suite_file.Node.path

打印

samplexml_1.xml

答案 1 :(得分:0)

将xml文件的内容获取到[xml]类型的变量。像这样:

[xml]$xml = Get-Content file.xml
$xml.suite.'suite-files'.'suite-file'.path
#samplexml_1.xml

答案 2 :(得分:0)

这可以工作,但根据最终要实现的目标,可能不是最佳解决方案。

$xml = [xml]'<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="MultipleSuite">
<suite-files>
    <suite-file path="samplexml_1.xml"></suite-file>
</suite-files>
</suite>'

$xml.suite."suite-files"."suite-file".path