使用XSLT将XML转换为XML的问题
我使用XSLT通过删除一些节点来实现XML到XML的转换。我是XSLt新手,它让人困惑 XML输入使用XSLT将XML转换为XML的问题,xml,xslt,Xml,Xslt,我使用XSLT通过删除一些节点来实现XML到XML的转换。我是XSLt新手,它让人困惑 XML输入 <?xml version="1.0" encoding="UTF-8"?> <role> <status>success</status> <data> <name>ac1</name> </data> <dat
<?xml version="1.0" encoding="UTF-8"?>
<role>
<status>success</status>
<data>
<name>ac1</name>
</data>
<data>
<name>ac2</name>
</data>
<data>
<name>ac3</name>
</data>
<day>monday</day>
</role>
XSLT是
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="utf-8" indent="yes" />
<xsl:template match="role">
<xsl:copy>
<xsl:for-each select="data">
<disaply_name>
<xsl:value-of select="name" />
</disaply_name>
</xsl:for-each>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
产出是,
<?xml version="1.0" encoding="utf-8"?>
<role>
<disaply_name>ac1</disaply_name>
<disaply_name>ac2</disaply_name>
<disaply_name>ac3</disaply_name>
</role>
<?xml version="1.0" encoding="utf-8"?>
<root>
<role2>
<disaply_name>ac1</disaply_name>
</role2>
<role2>
<disaply_name>ac2</disaply_name>
</role2>
<role2>
<disaply_name>ac3</disaply_name>
</role2>
</root>
预计产量为
<?xml version="1.0" encoding="utf-8"?>
<role>
<disaply_name>ac1</disaply_name>
<disaply_name>ac2</disaply_name>
<disaply_name>ac3</disaply_name>
</role>
<?xml version="1.0" encoding="utf-8"?>
<root>
<role2>
<disaply_name>ac1</disaply_name>
</role2>
<role2>
<disaply_name>ac2</disaply_name>
</role2>
<role2>
<disaply_name>ac3</disaply_name>
</role2>
</root>
我应该修改什么 使用表示它正在复制当前节点,在本例中,这解释了它在输出中的外观。由于之前没有指定其他节点,XSLT将其视为根节点。因此,我只是删除了它,并正确地放置了节点和
要获得预期的输出,请尝试使用以下命令:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="utf-8" indent="yes" />
<xsl:template match="role">
<root>
<xsl:for-each select="data">
<role2>
<display_name>
<xsl:value-of select="name" />
</display_name>
</role2>
</xsl:for-each>
</root>
</xsl:template>
</xsl:stylesheet>
以下是我得到的输出:
<?xml version="1.0" encoding="utf-8"?>
<root>
<role2>
<display_name>ac1</display_name>
</role2>
<role2>
<display_name>ac2</display_name>
</role2>
<role2>
<display_name>ac3</display_name>
</role2>
</root>
您应该修改预期的输出。您不应该有多个标记,因为它是根节点。您的预期输出不是有效的XML。我已更改了预期输出。。