2

XSL ドキュメント内で PHP を使用することは可能ですか?

そうしようとするといつもエラーが発生します...だから、びっくりする前に、それが可能かどうかを知りたいのです。(私は全くの初心者です)

このようなXSLファイルがあります

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
 <head>
  <title></title>

   <style type="text/css">
    [...]
   </style>

 </head>
 <body>

[...]

  <div id="content">
   <?php echo $anything; ?>
  </div>

[...]

 </body>
</html>
</xsl:template>

</xsl:stylesheet>

(コードをカットしました)

だから私はPHP経由でXMLファイルをインクルードしています(そのXMLファイルはこのXSLファイルでスタイルされています)そして今、例えば$anythingの内容をエコーし​​ようとしました

しかし、うまくいきません

4

4 に答える 4

2

XSLTProcessorクラスを使用してXSLを実行する場合は、PHPFunctionsを登録するだけです。XSL内の特定のデータ操作のために常にそれを行います。次に、XSLで必要な任意のPHP関数またはメソッドを呼び出すことができます。

于 2009-09-27T01:46:40.037 に答える
1

Saxon-EE 9.7 XSLT プロセッサを実行している場合は、 をタグ<xsl:processing-instruction name="php">として使用できますが、<?php注意点が 1 つあります。終了タグの?直前にを追加する必要があります。</xsl:processing-instruction>

<xsl:processing-instruction name="php">
    echo "hello world!";
?</xsl:processing-instruction>

あなたの例を使用するには、次のようになります。

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xsl:stylesheet [
<!ENTITY nbsp "&#160;">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<html>
 <head>
  <title></title>

   <style type="text/css">
    [...]
   </style>

 </head>
 <body>

[...]

  <div id="content">

        <xsl:processing-instruction name="php">
            echo $anything;
        ?</xsl:processing-instruction>

  </div>

[...]

 </body>
</html>
</xsl:template>

</xsl:stylesheet>
于 2016-06-28T19:29:31.417 に答える
1

変換する xsl と xml の両方で使用できます。

  • サーバーは .xsl/.xml ファイルを php として解析する必要があります
  • PHP は有効な xsl/xml を生成する必要があります
于 2009-09-25T22:13:28.397 に答える
0

simplexmlを使用して、PHPでXMLを操作できます。http://nl.php.net/simplexmlsimplexmlクラスの参照があります。したがって、XMLファイルをPHPにロードした後、asXML()関数を使用してエコーする前に、simplexmlインターフェースを介してXMLを変更できます。

于 2009-09-25T22:47:46.473 に答える