Как получить значение с помощью xmlstarlet?
Я пытаюсь получить начальное значение 4.7 из следующего XML-файла:
<?xml version="1.0"?>
<GCContextualMethod xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.agilent.com/schemas/Analytical/Instrument/GC7890/2006/">
<method xmlns="">
<GC PostRunHoldTime="0" AutoPrepRun="UNKNOWN">
<Inlet DeterminesReadiness="true">
...
</Inlet>
<Inlet DeterminesReadiness="true" />
<Column DeterminesReadiness="true">
...
</Column>
<Column DeterminesReadiness="true">
<Setpoints Mode="CONSTANT_FLOW">
<Flow State="ON" InitialHoldTime="0" InitialValue="4.7" PostRunValue="4.7" />
</Setpoints>
</Column>
<Column DeterminesReadiness="false">
Я пробовал следующее, но это не сработало:
%cd%\resources\XML.EXE sel -t -c "/GCContextualMethod/method[@xmlns=""]/GC[@PostRunHoldTime="0"]/Column[2]/Setpoints[@Mode="CONSTANT_FLOW"]/Flow[@State="ON"]@InitialValue" %cd%\GC78901.RapidControl.MethodXML.xml
batch
batch-file
xml
JvE010
источник
источник
Ответы:
В PowerShell это просто строки:
Сохраните это в некоторый script.ps1 и измените путь к реальному XML. Результат 4.7 будет в текстовом файле.
Обратите внимание, что в реальном XML-файле все элементы, такие как «GCContextualMethod» или «метод», должны иметь закрывающий элемент в паре с открывающим. Это не представлено в вашем примере. Итак, при создании сэмпла я закончил xml с:
источник