私の入力xmlファイル:
<root>
<child/>
</root>
私の期待する出力は、ビューページのソースになります。
<root>
<child>
<new_element>new1</new_element>
<new_element>new2</new_element>
<new_element>new3</new_element>
</child>
</root>
ビューページのソースで取得している実際の出力:
<root>
<child><new_element>new1</new_element> <new_element>new2</new_element> <new_element>new3</new_element></child>
</root>
私のxlstコードは次のとおりです。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:param name="test"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="/root/child">
<xsl:copy>
<xsl:value-of select="$test"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
私のphpコードは:
<?php
$xslt = new xsltProcessor;
$xslt->importStyleSheet(DomDocument::load('test.xsl'));
$val = '<new_element>new1</new_element> <new_element>new2</new_element> <new_element>new3</new_element>';
$xslt->setParameter('','test',$val);
echo $view = $xslt->transformToXML(DomDocument::load('test.xml'));
?>
これをブラウザで実行することにより、xmlタグを解析せずに出力を取得しています。私がどこで間違っていたのか調べてください。