我正在尝试转换看起来像这样的
<?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>
答案 0 :(得分:0)
如果选择元素而不是属性,则更简单:
django-rest-framework