我有下面的输入 xml,其中缺少一些强制性的 xml 标签,例如
<?xml version="1.0" encoding="UTF-8"?>
<rsp stat="ok" version="1.0">
<result>
<total_results>700</total_results>
<emailClick>
<id>1</id>
<url>https://www.google.com</url>
<email_template_id>12</email_template_id>
<created_at>2023-02-14 00:00:10</created_at>
</emailClick>
<emailClick>
<id>2</id>
<url>https://www.hello.com</url>
<created_at>2023-02-14 00:00:10</created_at>
</emailClick>
</result>
</rsp>
需要以下输出
<emailClick>
<id>1</id>
<url>https://www.google.com</url>
<email_template_id>12</email_template_id>
<created_at>2023-02-14 00:00:10</created_at>
</emailClick>
<emailClick>
<id>2</id>
<url>https://www.hello.com</url>
<email_template_id/>
<created_at>2023-02-14 00:00:10</created_at>
</emailClick>
我正在使用下面的 xslt 来实现这个输出
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" omit-xml-declaration="yes" indent ="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:for-each select="rsp/result/emailClick">
<emailClick>
<id><xsl:value-of select="id" /></id>
<url><xsl:value-of select="url" /></url>
<email_template_id><xsl:value-of select="email_template_id"/></email_template_id>
<created_at><xsl:value-of select="created_at"/></created_at>
</emailClick>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
有没有更好的方法来实现这一点,任何指导将不胜感激