我正在尝试将XML元素中的属性值移动到具有不同名称作为属性的新子元素。但是,该值保持不变,元素中的其余文本也是如此。原始 XML 行(完整 XML 消息的摘录(是:
<vanaf a:entiteittype="NPS" a:sleutelOntvangend="xxxxxx1608" xmlns:a="http://www.egem.nl/StUF/StUF0301"></vanaf>
我需要创建的 XML 输出是:
<vanaf a:entiteittype="NPS" xmlns:a="http://www.egem.nl/StUF/StUF0301">
<inp.a-nummer>xxxxxx1608</inp.a-nummer>
</vanaf>
除了这些行之外,原始 XML 消息的其余部分可以按原样复制。到目前为止,我已经构造了以下代码,但没有成功:
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:package="info:srw/extension/13/package-v1.0" xmlns:StUF="http://www.egem.nl/StUF/StUF0301" xmlns:BG="http://www.egem.nl/StUF/sector/bg/0310">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="BG:vanaf">
<vanaf a:entiteittype="NPS" xmlns:a="http://www.egem.nl/StUF/StUF0301">
<inp.a-nummer> <xsl:value-of select = "@a:SleutelOntvangend"/> </inp.a-nummer>
</vanaf>
</xsl:template>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
任何帮助为我指明正确方向的帮助将不胜感激。
使用这个:
<?xml version="1.0" encoding="utf-16"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:package="info:srw/extension/13/package-v1.0"
xmlns:StUF="http://www.egem.nl/StUF/StUF0301"
xmlns:BG="http://www.egem.nl/StUF/sector/bg/0310"
exclude-result-prefixes="BG package StUF">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:template match="vanaf">
<vanaf a:entiteittype="NPS" xmlns:a="http://www.egem.nl/StUF/StUF0301">
<inp.a-nummer> <xsl:value-of select = "@a:sleutelOntvangend"/> </inp.a-nummer>
</vanaf>
</xsl:template>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
注意:1. 具有未知命名空间"BG"的模板匹配2. 需要排除输出中不需要的额外命名空间。3. 在属性名称的值中是错误的: @a:sleutelOntvangend