我只想阅读所有XML文件的修订版号,并将该修订版本添加到新变量中,然后写入JSON文件。
我正在使用XSLT。 我正在使用document函数来获取所有必需的XML文件。
然后我获取所有修订版的值:
<SAMPLE CODE>
<XSLT>
'<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:tns="http://tnsnamespace"
<xsl:output method="text" indent="yes" />
<xsl:template match="/">
<xsl:copy>
<xsl:apply-templates select="document('C:\AW_Worksapce\File1.xml')/*"/>
<xsl:apply-templates select="document('C:\AW_Worksapce\File2.xml')/*"/>
<xsl:apply-templates select="document('C:\AW_Worksapce\File3.xml')/*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="app">
{
<xsl:variable name="rev" select="@revision" />
// Here some where I need to add all rev value into a
变量totalrev //我可以进一步使用
e.g。 File1.xml ahhve revision = 3 File1.xml ahhve revision = 2 File1.xml ahhve revision = 5
因此输出将是totalrev = 10
但我不确定如何添加它们。
Now,
build.xml file
<fileset dir="Windows/" casesensitive="yes" id="filename.list">
<include name="file1.xml"/>
<include name="file2.xml"/>
<include name="file3.xml"/>
</fileset>
<pathconvert property="filename.list.csv" refid="filename.list" pathsep=","
/>
<xslt basedir="Windows/" destdir="/meta-inf" extension=".mf"
style="test1.xslt" >
<mapper type="glob" from="*.xml" to="test1.mf"/>
<param name="build_date" expression="${build.date}"/>
<param name="dir" expression="${windows.dir}"/>
<param name="file_list" expression="${new.filename.list.csv}"/>
</xslt>
I want extract all three files from fileset and use like below:
XSLT File:
<xsl:variable name="docs" select="document('file1.xml') |
document('file2.xml') | document('file3.xml')"/>
Can anyone help me here?
答案 0 :(得分:0)
您可以将全局变量与所有文档一起使用,在XSLT 1.0及更高版本中,您可以使用
<xsl:variable name="docs" select="document('C:\AW_Worksapce\File1.xml') | document('C:\AW_Worksapce\File2.xml') | document('C:\AW_Worksapce\File3.xml')"/>
在XSLT 2.0及更高版本中,您也可以使用
<xsl:variable name="docs" select="document('C:\AW_Worksapce\File1.xml'), document('C:\AW_Worksapce\File2.xml'), document('C:\AW_Worksapce\File3.xml')"/>
在所有版本中,您只需计算sum($docs//app/@revision)
。