0
我有一个下面的XML应该转换为“预期的输出”(如下所述,但我不知道为什么节点属性(ABC)不进来XML标记,但外界如何转换XML使用XSLT和复制节点以及属性
<?xml version="1.0" encoding="UTF-8"?>
<Root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Node ID="ABC">
<Name>Name-ABC</Name>
<Description>Desc-ABC</Description>
</Node>
</Root>
XSL:
<?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" version="1.0" encoding="UTF-8" indent="yes" />
<xsl:template match="Node">
<xsl:copy>
<xsl:apply-templates select="node() | @*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
电流输出
<?xml version="1.0" encoding="UTF-8"?>
<Node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">ABC
Name-ABC
Desc-ABC
</Node>
期望输出(属性应该是内部的),我也并不需要复制这是不符合我所创建的模板的任何节点:
<?xml version="1.0" encoding="UTF-8"?>
<Node xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="ABC"></Node>
好试了你的建议。它看起来像这样<?xml version =“1.0”encoding =“UTF-8”?> xsl:stylesheet。输出是<?xml version =“1.0”encoding =“UTF-8”?> 不包括属性 –
Geebee
我建议添加一个带有匹配模板'Node/@ *'的模板。您尚未添加模板,但更改了现有模板的匹配模式和内容。 –
好吧,试过这样做,输出如预期<?xml version =“1.0”encoding =“UTF-8”?> 的 XSL:模板> 的 XSL:模板> xsl:stylesheet>但现在我唯一的问题是额外的标签信息也正在填充。例如,如果有另一个node1,那么XSL将失败:( –
Geebee