XMLフィードのデータを定期的にチェックして処理し、ユーザーに通知するなどの適切な処置をとるアプリケーションを開発する必要がありますが、主にレポートの生成と表示に使用されます。このXMLフィードは基本的にアプリケーションの稼働時間、ダウンタイムをチェックします。私は自分のサーバーに遠隔地からXMLファイルをダウンロードしています可変数のパラメータをXSLTに渡すロジック
- :ここ は、私は、次の午前の手順です。
- プロパティファイルから監視するアプリケーションを確認します。
- XSLTを使用してhtmlに変換し、htmlページをメールします。
このXMLフィードには、監視する必要がなく、javaのプロパティファイルを使用してチェックされるアプリケーションも含まれています。監視されているアプリケーションは後で追加できます。
これをxslファイルに含める方法はありますか? (私は、javaからxsltのパラメータも渡すことができますが、パラメータの数は可変です。私はアプリ名をグループ化して2つのパラメータを使用していますが、XMLフィードのイテレータであるxsl:for-each
ファイル)
EDIT:
<begin last-update="12/16/2011 06:18:31 am">
<application id="1" name="xyz" last-update="12/16/2011 6:16:03 AM">
<node2 code="normal">
<childnodes></childnodes>
<childnodes></childnodes>
</node2>
</application>
<application id="2" name="abc" last-update="12/14/2011 6:16:03 AM">
... Same as before
</application>
</begin>
これはXMLフィードです。私は以下..このXML ..私は、アプリケーションノードのname属性を確認する必要を反復処理していXSLコードが
<xsl:for-each select="begin/application">
<!-- Need this to be fetched dynamically using xsl params -->
<xsl:if test="@name='abc' or @name=xyz' >
<tr width="100%" style="border:solid 1px black;">
<td style="text-align:center; vertical-align:center;">DATA</td>
<td style="text-align:center; vertical-align:center;">DATA</td>
<td style="text-align:center; vertical-align:center;">DATA</td>
</tr>
</xsl:if>
ある現在の属性がハードコードされている名前..私からこれらを使用する必要がありますAPP1ているパラメータ文字列コード - Javaから渡されたパラメータのリストは、 APP2と私はのparamsを反復んどのように私はまた、ITERを必要とするよう質問は、ある
<root>
<application @name="ABC"></application>
<application @name="XYZ"></application>
</root>
としてノードのパラメータは、設定しますxmlファイルの設定。
またはXSLT 2.0で、あなたは文字列の配列(または番号などのシーケンス)を渡すことができますが、これができます。今年は –
が試用されました。しかし、役に立たない... しかし、wrokaround、あなたはパラメータ文字列を渡すことができます。 この文字列はdocument()関数を使用してXMLパラメータを取得しますか? 私はそれが二相論理でファイルシステムが必要だと知っていますが、今のところうまくいきます... – Mike
@Mike:おそらく、コマンドラインからパラメータを渡してみるだけです。私が使用している以上のすべてのXSLTプロセッサには、複雑な構造をパラメータとして渡すことを可能にする独自のAPIがあります。解析されたXMLドキュメント全体または個々の要素を含みます。 XSLTプロセッサのドキュメントを読んでください。 –