xml - 如何使用 xml starlet 选择 xml 值

标签 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/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

最佳答案

文档元素 GCContextualMethod 具有命名空间 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 表达式,最好在运行部分表达式时查看返回的内容。

关于xml - 如何使用 xml starlet 选择 xml 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37793653/

相关文章:

batch-file - 批处理是/否选项

java - 如何在 Java 中从 String 创建 XML 对象?

android - TextView 滚动不起作用

java - XML 解析 - 仅从具有特定 ID 的父节点获取节点

c++ - 如何在C++中添加环境变量?

file - 根据今天的日期创建文件夹并使用批处理文件将文件复制到新文件夹中

android - 批量选择位图/ImageViews android

xml - XSL 和 XSLT 之间有什么关系

c++ - Intel HD 3000 上正确的 OpenGL 初始化是什么?

Java 6 更新 25 虚拟机崩溃 : insufficient memory