如果元素只有文本内容 fe ,则使用简单的回显:
<macrodef name="Test">
<element name="someName" optional="yes"/>
<attribute name="foo" default="bar"/>
<sequential>
<echo>
<someName/>
</echo>
<echo> @@{foo} => @{foo}</echo>
</sequential>
</macrodef>
<Test>
<someName>blablabla..</someName>
</Test>
输出 :
[echo]
[echo] blablabla..
[echo] @{foo} => bar
否则对于嵌套的 xml 内容使用echoxml, fe :
<macrodef name="Test">
<element name="someName" optional="yes"/>
<attribute name="foo" default="bar"/>
<sequential>
<echoxml>
<someName/>
</echoxml>
<echo> @@{foo} => @{foo}</echo>
</sequential>
</macrodef>
<Test>
<someName>
<echo>blablabla..</echo>
</someName>
</Test>
输出 :
<?xml version="1.0" encoding="UTF-8"?>
<echo>blablabla..</echo>
[echo] @{foo} => bar
如果您需要元素值进行进一步处理,请使用 echo / echoxml 归档并在之后加载文件。
-- 评论后编辑 --
回显到文件:
<macrodef name="Test">
<element name="someName" optional="yes"/>
<attribute name="foo" default="bar"/>
<sequential>
<echo file="somefile.txt">
<someName/>
</echo>
<echo> @@{foo} => @{foo}</echo>
</sequential>
或者
<macrodef name="Test">
<element name="someName" optional="yes"/>
<attribute name="foo" default="bar"/>
<sequential>
<echoxml file="somefile.txt">
<someName/>
</echoxml>
<echo> @@{foo} => @{foo}</echo>
</sequential>
然后使用 loadfile => 使用内容创建属性(= 字符串)。
当使用带有 filterchain 的 xml 标头的 echoxml 条时:
<loadfile srcfile=" ... " property="whatever">
<filterchain>
<headfilter lines="10" skip="1"/>
</filterchain>
</loadfile>
根据您的需要调整 headfilter 线属性的值。
任何具有价值的财产:
<echo>blablabla..</echo>