所有xml文件的修订号总和到json文件中

时间:2017-07-04 07:57:52

标签: json xml xslt

我只想阅读所有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?

1 个答案:

答案 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)