2013-03-23 107 views
0

我有一個包含一個文件(除其他東西)的XML結構這樣的MSBuild中一個給定的屬性:獲取密鑰值用於使用XmlRead

<exchanges> 
    <name deliverycode="11">BIT</name> 
    <name deliverycode="92">BOTC</name> 
    <name deliverycode="24">BTEC</name> 
    <name deliverycode="24">BTEX</name> 
    <name deliverycode="60">NPCH</name> 
    <name deliverycode="00">TSE</name> 
    <name deliverycode="00">TSP</name> 
    <name deliverycode="91">UCA</name> 
</exchanges> 

對於給定的縮寫我想要的deliverycode數,例如「BIT」應該返回「11」,「BOTC」 - >「92」等。我使用MSBuild v4.0,並沒有成功嘗試XmlRead任務來完成此任務。

回答

0

您可以使用online XPath generators和XPath評估程序之一快速獲取正確的XPath。

我用this one測試以下XPath:

string(/exchanges//name[text()="BOTC"]/@deliverycode) 

它產生的92

正確的輸出比你可以使用XMLRead任務從MSBuild Community Tasks項目檢索值(它看起來像你在你的文章中提及它,所以我提到它是爲了確保我們在這裏同一頁)。

注意:我現在沒有在msbuild環境中測試XPath的設置(我只用我提到的web評估器測試過),因此可能需要稍微調整以使其在msbuild中生成值ENV。

+0

謝謝!澄清:我必須在MSBuild腳本中使用這個工具,所以不要認爲在線工具適合這裏。 我只使用MSBuild,我正在尋找的是類似於以下內容的東西: This one gives' BOTC「,但我想在MSBuild(或MSBuild中的其他東西)中使用XmlRead任務來傳遞BOTC以獲得92。 – user2201696 2013-03-25 11:02:01