Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用XMLStarlet选择xml值_Xml_Windows_Batch File_Xpath_Xmlstarlet - Fatal编程技术网

如何使用XMLStarlet选择xml值

如何使用XMLStarlet选择xml值,xml,windows,batch-file,xpath,xmlstarlet,Xml,Windows,Batch File,Xpath,Xmlstarlet,如何使用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/

如何使用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">  

文档元素
gccontextalmethod
具有名称空间uri
http://www.agilent.com/schemas/Analytical/Instrument/GC7890/2006/

您需要声明该uri,并在文档元素的位置步骤中使用声明的前缀。此外,不需要过滤器
[@xmlns=”“]

XML.EXE sel 
    -N gc=http://www.agilent.com/schemas/Analytical/Instrument/GC7890/2006/
    -t -c
    "/gc:GCContextualMethod/method/....."  
    %cd%\GC78901.RapidControl.MethodXML.xml

要测试XPath表达式,最好查看在运行部分表达式时返回的内容。

您还可以使用PowerShell的XML解析来消除对第三方可执行文件的需求<代码>powershell“([xml](gc GC78901.RapidControl.MethodXML.xml))。选择SingleNode(“//Flow[@State=\\”ON\“]”)。InitialValue“将获得其State property=“ON”的第一个流元素的InitialValue属性。您好,感谢您的建议。该代码需要能够在windows 7 PC上运行,因此我猜powershell不是一个选项。当我使用该代码时,它无法加载uri(无法加载外部实体)%cd%/resources/XML.EXE sel-t-c-n gc=“/gc:GCContextualMethod/method/%cd%/GC78901.RapidControl.MethodXML”。xml@JvE010参数需要重新排列,
-N
请参见我的编辑,而不是插入在
-t-c
之前的
-N
XML.EXE sel 
    -N gc=http://www.agilent.com/schemas/Analytical/Instrument/GC7890/2006/
    -t -c
    "/gc:GCContextualMethod/method/....."  
    %cd%\GC78901.RapidControl.MethodXML.xml