сгладить атрибут xml и текст в родственные элементы
Я пытаюсь преобразовать xml-файл, который выглядит следующим образом
<?xml version="1.0" encoding="UTF-8"?>
<Records xmlns="http://some.place.net">
<Record>
<length unit="in">96</length>
<width unit="in">3.75</width>
<height unit="in">1.75</height>
<weight unit="lbs">8</weight>
</Record>
</Records>
В нечто, что выглядит вот так
<?xml version="1.0" encoding="UTF-8"?>
<Records xmlns="http://some.place.net">
<Record>
<length>96</length>
<lengthunit>in</lengthunit>
<width>3.75</width>
<widthunit>in</widthunit>
<height>1.75</height>
<heightunit>in</heightunit>
<weight>8</weight>
<weightunit>lbs</weightunit>
</Record>
</Records>
Моя таблица стилей xlst выглядит так. Я не могу понять, как заставить новые элементы выглядеть как родственные предыдущему элементу .
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:x="http://www.something.com">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:variable name="vNamespace" select="namespace-uri(/*)"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="@unit">
<xsl:element name="{name(..)}{name()}" namespace="{$vNamespace}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
Это то, что я получаю вместо этого.
<Records xmlns="http://some.place.net">
<Record>
<length>
<lengthunit>in</lengthunit>96</length>
<width>
<widthunit>in</widthunit>3.75</width>
<height>
<heightunit>in</heightunit>1.75</height>
<weight>
<weightunit>lbs</weightunit>8</weight>
</Record>
</Records>