首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用XSLT处理输出XML -指令PHP

用XSLT处理输出XML -指令PHP
EN

Stack Overflow用户
提问于 2014-03-03 16:09:18
回答 2查看 1.1K关注 0票数 1

我有以下XML:

代码语言:javascript
复制
<content>
  <p>Para one</p>
  <p>Para two</p>
  <img src='pic.jpg' alt='pic'/>
</content>

在我的XSLT中

代码语言:javascript
复制
<xsl:processing-instruction name="php">
    $content = "<xsl:copy-of select="content/node()"/>";
</xsl:processing-instruction>

但它输出的是:

代码语言:javascript
复制
$content = "Para one
Para two";

我要它输出:

代码语言:javascript
复制
$content = "<p>Para one</p><p>Para two</p><img src='pic.jpg' alt=='pic'/>";

我该怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-03 19:43:09

这个剧本这个剧本给了我我想要的结果:

代码语言:javascript
复制
<xsl:include href="nodetostring.xsl"/>
<xsl:template match="content">
    <xsl:param name="content">
        <xsl:apply-templates mode="nodetostring" select="node()"/>
    </xsl:param>
    <xsl:processing-instruction name="php">
        $content = '<xsl:copy-of select="$content"/>';
    </xsl:processing-instruction>
</xsl:template>
票数 1
EN

Stack Overflow用户

发布于 2014-03-03 16:22:35

通常,copy-of="node()"检索元素的子节点。但在处理指令的情况下,似乎只输出文本内容。

这对我来说没有意义,但下面的解决方案是解决这个问题的方法。

样式表

代码语言:javascript
复制
<?xml version="1.0"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
    <xsl:strip-space elements="*"/>

 <xsl:template match="/content">
   <xsl:processing-instruction name="php">
       <xsl:text>$content = "</xsl:text>
       <xsl:apply-templates/>
       <xsl:text>";</xsl:text>
   </xsl:processing-instruction>
 </xsl:template>

 <xsl:template match="content/*">
    <xsl:text>&lt;</xsl:text><xsl:value-of select="name()"/><xsl:text>&gt;</xsl:text>
    <xsl:value-of select="."/>
    <xsl:text>&lt;/</xsl:text><xsl:value-of select="name()"/><xsl:text>&gt;</xsl:text>
 </xsl:template>

</xsl:stylesheet>

输出

代码语言:javascript
复制
<?php $content = "<p>Para one</p><p>Para two</p>";?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22151576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档