我對螞蟻相當陌生,一直在看着這些任務。我正在嘗試生成一個xml文件。我是否需要調用一個外部進程或者有沒有辦法做到這一點?它可以像發送字符串到txt文件並將其保存爲.xml一樣簡單。可能嗎?您可以使用Ant來構建/修改XML文件嗎?
回答
正確的答案取決於你實際上要怎樣做。
你可以創建一個使用echo任務和參替換一個小的XML文檔,但變得難以很快維護。
如果您的目標是生成一個大多數樣板文件,其中包含多個替代值,那麼您應該查看創建模板文檔,然後使用Copy with filtering任務。
如果您需要根據來自Ant的數據(或從其他地方收集)修改文檔的結構,那麼使用xslt任務將會更加合適。 XSLT的問題在於它並不總是直接使用(XSLT使用函數式編程,而不是程序式編程)。
您可能會發現,正確的答案是write your own Ant task會做你想要什麼,只是你想要的方式。
如果你可以更好地描述你想要達到的目標,我相信有人會樂意提供更準確的答案。
謝謝,我與過濾複製,工作非常好! – sarcasteak 2010-06-17 20:13:51
只是一個'邊緣案例'問題 - 「帶過濾器的複製」任務是否能夠正確處理包含特殊XML字符的值(<,&etc?) – monojohnny 2017-02-01 14:40:25
使用過濾器複製是愚蠢的 - 它所做的只是複製字節,並使用值替換。訣竅是您正在定義XML構建文件中的值。如果您可以首先正確定義數值,則使用過濾器進行復制將會替代它們。 – 2017-02-02 13:47:13
你可以這樣做,雖然在我看來更像是你想事先編寫腳本的東西,或者你可以從Ant中調出的東西。
的任務是:
<echo file="my.xml"><!--put escaped xml here--></echo>
這當然會是單調乏味的,因爲一切都要逃脫的,但你可以做到這一點。
可以使用Replace
任務的模板來替換給定的字符串,並將其保存爲XML。 一個簡單的例子,如圖螞蟻文檔中:
<replace file="${src}/index.html" token="@@@" value="wombat"/>
我用它通過的實際構建標識符在Java項目來代替恆定@[email protected]
,例如。
如果你想要做更復雜的處理,你應該看看XSLT
任務。敵人例如,生成文檔,用date
替換輸出,可以使用類似:
<xslt basedir="doc" destdir="build/doc"
extension=".html" style="style/apache.xsl">
<param name="date" expression="07-01-2000"/>
</xslt>
當你必須在你的螞蟻工作流程中處理任何類型的XML處理中,xmltask強烈推薦。非常詳細的文檔和良好的支持。除此之外,您需要的只是一些XPATH knowledge。這裏=>another helpful article
- 1. 您可以使用ANT構建文件作爲Phing構建文件嗎?
- 2. 您可以使用antixml來創建xml文檔嗎?
- 3. 可以在一個ant XML構建文件中包含一個XML文件嗎?
- 4. 我可以在Ant中使用遠程構建文件嗎?
- 5. 您可以修改VisualSVN以便呈現HTML文件嗎?
- 6. 您可以使用scons來構建PHP擴展嗎?
- 7. 您可以使用ASP.NET Web控件(ASCX)來呈現XML嗎?
- 8. ANT可以更改XML文件中的值嗎?
- 9. 您可以銷售使用Ruby on Rails構建的軟件嗎?
- 10. SOAP - 您可以通過編輯WSDL文件來修改WebServices SOAP API嗎?
- 11. 修改Coverflow以使用xml文件
- 12. 您可以將Maven pom.xml文件重構爲可重用的XML片段嗎?
- 13. 在CLion中,您可以開始構建特定文件嗎?
- 14. 您可以使用指向包含結構的指針來修改嵌套結構的值嗎?
- 15. WIX可以修改XAP包內的XML文件嗎?
- 16. ANT:如何修改構建文件中的java.library.path
- 17. 可以修改一個結構嗎?
- 18. 您可以將ASP.net用戶控件構建爲程序集嗎?
- 19. 修改XML結構以使用XSD或XSLT創建嵌套樹XML結構
- 20. 您可以使用Django構建Chrome擴展嗎?
- 21. 您可以使用CruiseControl構建Cocoa/Objective-C項目嗎?
- 22. 您可以使用.valueOf()構建更好的ifString函數嗎?
- 23. 使用ant任務修改mqfte中可能的文件內容?
- 24. 使用Ant構建文件欄(Message broker)?
- 25. 您可以使用node.js中的XML/HTML文檔嗎?
- 26. 可以在Jenkins中安排TestNG XML構建文件嗎?
- 27. asp.net:我可以在沒有VS的App_Data文件夾中修改xml文件嗎?
- 28. 在Eclipse中使用Apache Ant修改項目構建路徑
- 29. 是否可以在不修改JS文件的情況下使用Dojo構建?
- 30. 您可以在GraphViz中構建可重用的樣式嗎?
是不是['Replace'(http://ant.apache.org/manual/Tasks/replace.html)任務足夠你想做什麼? – tonio 2010-06-17 19:07:00
謝謝,這些答案都非常有用。 – sarcasteak 2010-06-17 19:53:05