1

別のXMLファイルを生成するためにXSLTによって処理されているXMLファイルがあります。

XSLTが出力ファイルを生成するために参照する元のXMLメッセージ内のすべての可能な要素/属性を知る簡単な方法はありますか?

w3school.comサイト(http://www.w3schools.com/xsl/xsl_transformation.asp)の例を見ると、カタログXMLには価格や年などの項目が含まれていますが、XSLTはcatalog /cd/のみをプルします。タイトルとカタログ/cd/artist。

したがって、必要なのは、xslt(おそらく入力ファイルスキーマ)を分析して、出力ファイルに含まれる属性のある種のリストを提供できる、ある種の自動化された魔法のツールです。

助けてくれてありがとう

4

3 に答える 3

0

xsltファイルをこれに変更した場合

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

それが助けになるなら、それはあなたに元のファイルのコピーを見せますか?

于 2012-12-06T10:27:50.487 に答える
0

でも良い想像力!上手。現在、XSLTを分析して、「XMLファイルで参照しているすべての要素/属性」のように通知できるツールはありません。あなたはそれを手動でしなければなりません..

于 2012-12-06T11:04:36.020 に答える
0

このようなツールを自分で作成することは難しくありません。

要素または属性に一致するテンプレートに追加します

<xsl:message>
 <!-- Put all the data here that identifies the element attribute,
      for example the Xpath expression that selects the current node
 -->
</xsl:message>

ノードを取得し、ノードを選択する1つのXPath式を生成する既存の変換を使用できます-上記の中でそれらを呼び出しますxsl:message。たとえば、これを参照してください:XMLノードjavaからxpathを生成/取得します

次に、生成されたすべてのXPath式を演算子と組み合わせて|、結果のXPath式を評価する必要があります。これにより、変換で実際に参照されるすべての要素と属性が選択されます。

XSLT組み込みテンプレートによって処理される要素/属性も考慮したい場合は、変換内の特定のテンプレートでそれらをオーバーライドするだけです。これは、追加の利点として変換でエラーが見つかる可能性があるため、良い習慣です。

于 2012-12-06T13:50:45.730 に答える