2013-02-05 66 views
0

我必須基於一組xml文件生成報告。 每天都會從系統中提取一些統計信息,我想生成一個HTML報告,該報告讀取當前目錄中所有xml輸入文件(由「Daily Request * .xml」中的掩碼標識)。解析XML文件的集合以生成合成報告

爲例「每日請求文件」的:每日請求Extract_20130205-130822.xml

<?xml version="1.0" encoding="UTF-8"?> 
<tasks startDate="2013/02/04 13:08:21" endDate="2013/02/05 13:08:21" environment="Q000"> 
    <task create="2013/02/04 20:44:15" type="deliverDistrib" jobName="TUAJW1W0" mode="Batch" synch="false" status="Completed" duration="633.44" /> 
    <task create="2013/02/05 08:18:36" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="true" status="Completed" duration="48.35" /> 
    <task create="2013/02/05 08:19:21" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="false" status="Completed" duration="17.36" /> 
    <task create="2013/02/05 08:19:21" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="false" status="Completed" duration="2.93" /> 
    <task create="2013/02/05 08:19:26" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="true" status="Completed" duration="9.57" /> 
    <task create="2013/02/05 08:19:34" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="false" status="Completed" duration="8.67" /> 
    <task create="2013/02/05 08:19:34" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="false" status="Completed" duration="2.95" /> 
    <task create="2013/02/05 08:21:23" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="true" status="Completed" duration="7.87" /> 
    <task create="2013/02/05 08:21:30" type="deliverDistrib" jobName="LVAJW1W0" mode="Online" synch="false" status="Completed" duration="5.87" /> 
</tasks> 

我在文檔閱讀和一些例子,我們可以使用函數文檔()檢索外部文件。但顯然它不支持通配符。 我發現另一個線程說,我們必須使用XPath函數:集合()

喜歡的東西

collection('file:///./?select=Daily*.xml') 

我想開始beeing abble到Concat的所有元素的流,以便我可以從他們那裏寫出報告。

我的推薦碼:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet exclude-result-prefixes="xs" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="*"> 
    <xsl:for-each select="collection('file:///./?select=Daily*.xml')/tasks"> 
    <xsl:copy-of select="."/> 
    </xsl:for-each> 
</xsl:template> 
</xsl:stylesheet> 

但ID不會輸出任何東西: -/

是否有可能實現這一目標?

回答

0

我得到它顯然與此XSL:

<xsl:stylesheet exclude-result-prefixes="xs" version="2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="*"> 
    <xsl:for-each select="collection('./?select=Daily*.xml')/tasks"> 
    <xsl:copy-of select="task"/> 
    </xsl:for-each> 
</xsl:template> 
</xsl:stylesheet>