1

我的 sample.xml 文件如下

<deployment>
     <definition type="xpath">
      <xpath>configuration/Settings/add[@key='NetworkPath'][@value]</xpath>
  <attribute>value</attribute>
  <value>http://www.google.com</value>
 </definition>
</deployment>

我想获取对应于 xpath“configuration/Settings/add[@key='NetworkPath'][@value]”的值“ http://www.google.com ”。我在 XmlPeek 任务下面写,但它不工作

 <XmlPeek XmlInputPath="C:\Sample.xml"
         Query="configuration/Settings/add[@key='NetworkPath'][@value]">
  <Output TaskParameter="Result" ItemName="Peeked" />
</XmlPeek>
<Message Text="Peeked value is @(Peeked)"/>
4

1 回答 1

1

XPath 可能有些混乱。

如果你想从 Sample.xml 中检索 http://www.google.com,你需要应用这个查询:

<XmlPeek XmlInputPath="Sample.xml"
         Query="/deployment/definition/value/text()">
  <Output TaskParameter="Result" ItemName="Peeked" />
</XmlPeek>

如果要提取configuration/Settings/add[@key='NetworkPath'][@value]/@value它对应于另一个具有这种形式的 XML 文件的路径:

<configuration>
    <Settings>
        <add key="NetworkPath" value="http://www.google.com"/> 
    </Settings>
</configuration>

查看一些XPath 示例

于 2015-08-07T08:55:29.347 回答