1

我在尝试使用 PHP 处理指令为属性设置值时遇到问题:

XSLT

<li itemprop="startDate">
    <xsl:attribute name="content">
        <xsl:processing-instruction name="php">
            echo "Monday";
        ?</xsl:processing-instruction>
    </xsl:attribute>
    Monday
</li>

页面渲染良好,但属性始终为空。

输出

<li itemprop="startDate" content="">Monday</li>

我期待 PHP 在属性中回显一个值

4

2 回答 2

2

如果您使用 PHP 通过 XSLT 转换 XML,您可以在 php 中使用:

$proc->setParameter(null, 'day', 'Monday');

$proc->transformToXML($xml);

然后在你的 XSLT 中使用这个变量:

<xsl:stylesheet version="2.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:php="http://php.net/xsl"
exclude-result-prefixes="php"
xsl:extension-element-prefixes="php">

<xsl:param name="day"/> <!-- Set the parameter -->

<xsl:attribute name='content'>
    <xsl:value-of select="$day"/>
</xsl:attribute>

祝一切顺利!

于 2013-07-04T22:20:56.677 回答
0

您没有说明如何打开 XML。但是由于回声,我认为它可以/应该包含 php 指令。

在这里xsl:processing-instruction没有意义。试试这个:

<li itemprop="startDate">
    <xsl:attribute name="content">
        <?php
            echo "Monday";
        ?>
    </xsl:attribute>
    Monday
</li>
于 2013-06-15T13:12:28.463 回答