如何基于现有XML文档创建新的XML文档并重命名一些元素?

时间:2011-06-20 22:15:38

标签: php xml

我需要为网站服务创建一个XML文档,通过搜索引擎显示来自许多电子商店的产品。

当我与开发团队交谈时,他们告诉我,我需要一个遵循其结构和系统的XML。

我的问题是我如何根据我的eshop.xml创建一个新的eshopNEW.xml但更改某些元素的名称以满足其结构要求?例如,假设我需要将item更改为product,将title更改为name,并将属性type="game"添加到其中。

我已经粘贴了一个简单的XML,这样我就可以更轻松地了解创建新文档和转换名称的过程。

感谢您的回答。

  <item>
    <title>Hide your heart</title>
    <quantity>1</quantity>
    <price>9.90</price>
  </item>
  <item>
    <title>Empire Burlesque</title>
    <note>Special Edition</note>
    <quantity>1</quantity>
    <price>10.90</price>
  </item>

1 个答案:

答案 0 :(得分:1)

听起来像是XSLT的一个很好的用例。

E.g。放入一个标识模板,默认情况下传递元素:

<xsl:template match="node() | @*">
  <xsl:copy>
    <xsl:apply-templates select="node() | @*" />
  </xsl:copy>
</xsl:template>

然后为需要更改名称的元素添加特定模板:

<xsl:template match="item">
  <product>
    <xsl:apply-templates select="node() | @*" />
  </product>
</xsl:template>

<xsl:template match="title">
  <name>
    <xsl:apply-templates select="node() | @*" />
  </name>
</xsl:template>