Как получить значение узла из XML с помощью скрипта PowerShell? - PullRequest
0 голосов
/ 03 сентября 2018
<?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 голосов
/ 03 сентября 2018

Это будет работать, но, вероятно, не лучшее решение, в зависимости от того, чего вы хотите достичь в конце.

$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
0 голосов
/ 03 сентября 2018

Используйте XPath и командлет Select-Xml :

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

Выбирает массив из <suite-file> узлов (в вашем примере есть только одно совпадение). Вы можете получить доступ к результату так:

$suite_file.Node.path

отпечатков

samplexml_1.xml
0 голосов
/ 03 сентября 2018

Получить содержимое XML-файла для переменной типа [xml]. Вот так:

[xml]$xml = Get-Content file.xml
$xml.suite.'suite-files'.'suite-file'.path
#samplexml_1.xml
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...