0

xml ファイルのコレクションに基づいてレポートを生成する必要があります。毎日いくつかの統計がシステムから抽出され、現在のディレクトリにあるすべての xml 入力ファイル ("Daily Request*.xml" のようなマスクで識別される) を読み取る HTML レポートを生成したいと考えています。

「デイリーリクエストファイル」の例:デイリーリクエスト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>

ドキュメントと、関数 document() を使用して外部ファイルを取得できるいくつかの例を読みました。しかし、どうやらワイルドカードをサポートしていないようです。Xpath 関数を使用する必要があると言っている別のスレッドを見つけました: collection()

何かのようなもの

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

ストリーム内のすべての要素を連結して、それらからレポートを作成できるようにしたいと考えています。

私の提案したコード:

<?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 は何も出力しません:-/

これを達成することは可能ですか?

4

1 に答える 1

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>
于 2013-02-05T13:49:14.020 に答える