如何使用php将xml转换为另一个xml

时间:2012-10-10 12:33:17

标签: php xml

我想将一个xml转换为另一个xml。例如,如果xml标记为字符串,

<book>
<title>test</test>
<isbn>1234567890</isbn>
<author>test</author>
<publisher>xyz publishing</publisher>
</book>

我想将上面的xml转换为

<b00>
<t001>test</t001>
<a001>1234567890</a001>
<a002>test</a002>
<p001>xyz publishing </p001>
</b00>

如何使用php转换xml

1 个答案:

答案 0 :(得分:3)

您可以使用XSLT进行转换。

PHP代码

$doc = new DOMDocument();
$doc->load('/path/to/your/stylesheet.xsl');
$xsl = new XSLTProcessor();
$xsl->importStyleSheet($doc);
$doc->load('/path/to/your/file.xml');
echo $xsl->transformToXML($doc);

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="xml" />
    <xsl:template match="/">
        <b00><xsl:apply-templates/></b00>
    </xsl:template>
    <xsl:template match="title">
        <t001><xsl:value-of select="."/></t001>
    </xsl:template>
    <xsl:template match="isbn">
        <a001><xsl:value-of select="."/></a001>
    </xsl:template>
    <xsl:template match="author">
        <a002><xsl:value-of select="."/></a002>
    </xsl:template>
    <xsl:template match="publisher">
        <p001><xsl:value-of select="."/></p001>
    </xsl:template>    
</xsl:stylesheet>