xml starlet을 사용하여 xml 값을 선택하는 방법

xml starlet을 사용하여 xml 값을 선택하는 방법

xmlstarlet을 사용하여 값을 어떻게 검색합니까?

다음 XML 파일에서 초기 값 4.7을 검색하려고 합니다.

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

답변1

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>

관련 정보