So wählen Sie einen XML-Wert mit XML-Starlet aus

So wählen Sie einen XML-Wert mit XML-Starlet aus

Wie rufe ich mit xmlstarlet einen Wert ab?

Ich versuche, den Anfangswert 4,7 aus der folgenden XML-Datei abzurufen:

<?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">  

Ich habe Folgendes versucht, aber es hat nicht funktioniert:

%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

Antwort1

In Powershell sind es nur zwei Zeilen:

[xml]$XmlDocument = Get-Content -Path C:\...\test.xml
$XmlDocument.GCContextualMethod.method.GC.Column.Setpoints.Flow.InitialValue | Out-File c:\temp\result.txt

Speichern Sie dies in einer script.ps1-Datei und ändern Sie den Pfad zur echten XML-Datei. Das Ergebnis 4.7 wird in die TXT-Datei ausgegeben.

Bitte beachten Sie, dass in einer echten XML-Datei alle Elemente wie „GCContextualMethod“ oder „method“ ein schließendes Element haben müssen, das mit dem öffnenden gepaart ist. Das ist in Ihrem Beispiel nicht dargestellt. Als ich also ein Beispiel erstellte, beendete ich die XML mit:

 </GC>
</method>
</GCContextualMethod>

verwandte Informationen