需要MSBuild XmlPeek任务帮助

时间:2015-08-07 08:03:06

标签: msbuild readxml

我的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>

我想获取值&#34; http://www.google.com&#34;对应xpath&#34;配置/设置/添加[@key =&#39; NetworkPath&#39;] [@ value]&#34;。我正在写下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)"/>

1 个答案:

答案 0 :(得分:1)

XPath可能存在一些混淆。

如果您想从Sample.xml检索httpsp://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 examples