两种xml格式的常见做法是什么?你会如何将第一种格式转换为第二种格式,正则表达式?我应该<subgroupones>
吗?基本上,除了<tags>
之外没有任何属性的<global>
应该被删除,或者如果有更优雅的方式。
<global>
<groupone name="bce">
<subgroupones>
<subsgroupone name="a" />
<subsgroupone name="b" />
<subsgroupone name="c" />
</subgroupones>
<groupone>
</global>
<global>
<groupone name="bce">
<subsgroupone name="a" />
<subsgroupone name="b" />
<subsgroupone name="c" />
<groupone>
</global>
答案 0 :(得分:2)
XML到XML转换几乎总是由样式表转换(XSLT)最好地处理。 PHP具有用于处理XSLT的内置库:http://php.net/manual/en/book.xslt.php
例如,这是一个XSLT,它只复制具有属性的元素(<global>
除外,它总是包含在内):
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="global | @* | node()[@*]">
<xsl:copy><xsl:apply-templates select="@* | node()"/></xsl:copy>
</xsl:template>
</xsl:stylesheet>
示例输出(尚不确定如何删除多余的空间):
<?xml version="1.0" encoding="UTF-8"?><global>
<groupone name="bce">
<subsgroupone name="a"/>
<subsgroupone name="b"/>
<subsgroupone name="c"/>
</groupone>
</global>
您可以尝试使用此工具:http://xslttest.appspot.com/