2015-08-07 5 views
1

Мой файл sample.xml нижеMSBuild XmlPeek задача требуется помощь

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

Я хочу, чтобы получить значение "http://www.google.com" corresponsing в XPATH «конфигурации/Настройки/добавить [@ ключ = 'NetworkPath'] [@ стоимость]". Я пишу ниже задачу 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

Возможно, возникла некоторая путаница в отношении XPath.

Если вы хотите получить htttp: //www.google.com от sample.xml вам нужно применить этот запрос:

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

+0

Спасибо, Фабиан. Я понял, что вы имеете в виду. – Ravneet

+0

Спасибо, Фабиан. Я понял, что вы имеете в виду. То, что я хочу, правильно извлекается сторонним инструментом «Final Builder». поэтому, я думал, что должен быть способ сделать то же самое с msbuild. Посмотрим, есть ли у кого-нибудь ответ или способ сделать это. – Ravneet

+0

Вы можете сделать это с помощью msbuild, но вам нужно изменить XmlInputPath и использовать реальный xml-файл вместо «Sample.xml», – Fabian

Смежные вопросы