4

xslt を使用して、いくつかのテンプレートを xml ファイルに適用し、html ページを出力しています。そこで、「xsl:output」のメソッドを「html」と定義しました。ただし、xml ファイルからいくつかの xml ノードを元の形式で表示する必要がありますが、残念ながら期待どおりに html ページに表示されませんでした。

これは、サンプルの xml ファイルです。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<employees>
    <employee>
        <name>Hello World</name>
        <title>UI Designer</title>
    </employee>
</employees>

私のxsltは次のとおりです:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>

    <xsl:template match="/">
    <html>
    <head>
        <title>Example of Employee Data</title>
    </head>  
    <body>
        <h2>The following shows the structure of employee data file: </h2>
        <div style="background-color: grey">
            <xsl:copy-of select="employees/employee"/>
        </div>
        ......
    </body> 
    </html> 
    </xsl:template>
</xsl:stylesheet> 

ページのソースを表示すると、ノード 'employee' とその子がそこにあり、それらは html ページに表示されませんでした。出力方法を「html」に指定したからだと思います。しかし、HTML ページを生成し、いくつかの xml 形式のノードを自分のページに埋め込む必要があります...

私は試みてきましたが失敗しました...誰か助けてくれませんか?ありがとう!!

出力ページは次のようになると思います。 ここに画像の説明を入力

4

3 に答える 3

4

それにはおそらく少し遅れていますが、まったく同じものを探してこのページにたどり着きました。

XLST を介して HTML ページに XML データをコピーする非常に簡単な方法は、フレームを使用することです。私はこの解決策をここで見つけました。明らかにそれは時代遅れで非推奨ですが、テストしたところ動作しています。

<xmp>
    <xsl:copy-of select="."/>
</xmp>

スクリーンショットからわかるように、下に XML データを含む素敵なアコーディオンがあります。 ここに画像の説明を入力

于 2014-04-28T14:59:58.477 に答える
3

ブラウザーが表示する場合<employee>(山かっことすべて)、変換のシリアル化された出力は である必要があります&lt;employee&gt;。XSLT 3.0 には、次のことができる機能があります。

<xsl:value-of select="serialize(emp)"/>

あなたが欲しいと思うようになります。他の一部のプロセッサは、これを拡張機能として提供する場合があります。そうでない場合は、次のような XSLT 自体で記述されたシリアライザーを使用できます: http://fgeorges.org/xslt/serial/またはここにリストされているもののうちの 1 つ: http://www.mhonarc.org/archive/html /xsl-list/2010-08/msg00186.html

于 2013-04-02T06:18:20.547 に答える
2

要素の使用を検討し、同じスタイル属性を適用して背景色を設定し、 jQuery Autosize<textarea>などの JavaScript を利用して、コンテンツに合わせてテキストエリアを自動調整することができます。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html"/>

    <xsl:template match="/">
        <html>
            <head>
                <title>Example of Employee Data</title>
                <script src='http://www.jacklmoore.com/js/jquery.js'></script>
                <script src='http://www.jacklmoore.com/js/jquery.autosize.js'></script>
                <script type="text/javascript">
                    $(document).ready(function(){
                        $('textarea').autosize();   
                    });
                </script>
            </head>  
            <body>
                <h2>The following shows the structure of employee data file: </h2>
                <textarea style="background-color: grey; width:100%">
                    <xsl:text>&#xa;</xsl:text>
                    <xsl:copy-of select="employees/employee"/>
                </textarea>
                ......
            </body> 
        </html> 
    </xsl:template>
</xsl:stylesheet> 
于 2013-04-02T00:21:05.583 に答える