วิธีเลือกค่า xml โดยใช้ xml starlet


0

ฉันจะดึงค่าโดยใช้ 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

ฉันเสนอให้ใช้ powershell เพื่อประมวลผล XML มันง่ายกว่ามาก tomsitpro.com/articles/powershell-read-xml-files,2-895.html
Hardoman

คำตอบ:


0

ใน PowerShell มันเป็นเพียงแค่บรรทัด:

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

บันทึกสิ่งนี้เป็น script.ps1 บางส่วนและเปลี่ยนเส้นทางเป็น xml จริง ผลลัพธ์ 4.7 จะออกไปยังไฟล์ txt

โปรดทราบว่าในไฟล์ xml จริงองค์ประกอบทั้งหมดเช่น "GCContextualMethod" หรือ "method" จะต้องมีการปิดหนึ่งรายการที่จับคู่กับการเปิดหนึ่งรายการ ที่ไม่ได้เป็นตัวแทนในตัวอย่างของคุณ ดังนั้นเมื่อสร้างตัวอย่างฉันสิ้นสุดโดย xml ด้วย:

 </GC>
</method>
</GCContextualMethod>
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.