![](/img/trans.png)
[英]How to use XQuery to count the occurrences of all the elements and attributes in an XML file?
[英]XQuery | How to transform all attributes into elements
我需要准備一個XQuery文件,對於任何輸入XML文件,該文件都會將所有屬性轉換為元素。 我在下面的XSLT中完成了它。 tranformation.xsl
:
<xsl:template match="*" name="xsl:initial-template">
<xsl:element name="{name()}">
<xsl:for-each select="@*">
<xsl:element name="{name()}">
<xsl:value-of select="."/>
</xsl:element>
</xsl:for-each>
<xsl:apply-templates select="child::node()"/>
</xsl:element>
</xsl:template>
在XQuery 3.1中,您可以使用
declare function local:apply($nodes as node()*) as node()* {
$nodes ! (
typeswitch(.)
case document-node()
return local:apply(node())
case element()
return element {node-name()} {
@* ! element{node-name()} { data() },
local:apply(node())
}
default return .
)
};
local:apply(/)
在線示例位於https://xqueryfiddle.liberty-development.net/bFukv8c/3
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.