XML データを出力する関数が 2 つあります。理想的には、各関数の出力を 1 つの変数に結合してデータを解析したいと考えています。
SQL 用語では、各関数は PageId 属性を介した内部結合によって結合できますが、結合は XSLT では許可されていません (少なくとも私の知る限りでは)。
これらの機能を組み合わせる最もクリーンで簡単な方法について何か提案はありますか? 私が呼び出している関数は cms に組み込まれており、編集することはできません。
いくつかの詳細情報:
最初の機能はサイトマップです。Web ページ ID とその Web サイトのレベルが一覧表示されます。
2 番目の関数は、サイト マップと組み合わせる必要がある Web ページ ID とそのメタデータ タグを取得します。
2 番目の機能のページ ID の変数を作成することを考えましたが、メタデータ タグを持つページの数が変化し、変数が動的な名前をサポートしているとは思えません。
xslt は初めてなので、説明が不十分でしたら申し訳ありません。さらに情報が必要な場合はお知らせください。
編集: コード例の追加
<in:inputs xmlns:in="http://www.composite.net/ns/transformation/input/1.0">
<in:result name="SitemapXml">
<Page Id="a0a47ce1-6eba-4d29-a7a3-3749c768c7e7" isopen="true" xmlns="">
<Page Id="a3055286-0e90-4b04-99dd-fb1a61dde0bf" isopen='true' xmlns="">
<Page Id="da675b13-d4d3-42ab-acc1-82e2a5408100" isopen='true' iscurrent='true' Depth="2"/>
</Page>
</Page>
</in:result>
<in:result name="GetisrootXml">
<isroot PageId="a0a47ce1-6eba-4d29-a7a3-3749c768c7e7" Id="f8d4eea4-7070-4bc3-a804-e106697ffaa9" isroot="true" xmlns=""/>
<isroot PageId="f8e4adbc-2758-42d6-bc40-0192ba0107a6" Id="db62e132-3f3b-493f-917a-9e090f887f13" isroot="false" xmlns=""/>
</in:result>
</in:inputs>
私が返したいもの:
<in:inputs xmlns:in="http://www.composite.net/ns/transformation/input/1.0">
<in:result name="SitemapXml">
<Page Id="a0a47ce1-6eba-4d29-a7a3-3749c768c7e7" isopen="true" xmlns="" isroot='true'>
</Page>
<Page Id="a3055286-0e90-4b04-99dd-fb1a61dde0bf" isopen='true' xmlns="">
<Page Id="da675b13-d4d3-42ab-acc1-82e2a5408100" isopen='true' iscurrent='true' Depth="2"/>
</in:result>
</in:inputs>
これから、ニーズに合わせて出力をさらに変更したいと思います (表示目的でタグを追加します)。そのポイントに到達するには、isroot 属性をサイトマップに添付する必要があります。