gpt4 book ai didi

Java:如何在 org.w3c.dom 中用 包装所有元素?

转载 作者:数据小太阳 更新时间:2023-10-29 02:14:51 27 4
gpt4 key购买 nike

我的目标是在当前 Node.ELEMENT_NODE 上包装每一个 dom 元素 ( org.w3c.dom.Document )带标签 <something style="background-color:red"></something> .

public static void main(String[] args){
org.w3c.dom.DOMDocument doc;
paintAllNodes(doc, 0);
}

public static void paintAllNodes(Node node, int level) {
// Process node

// If there are any children, visit each one
NodeList list = node.getChildNodes();
for (int i=0; i<list.getLength(); i++) {
// Get child node
Node childNode = list.item(i);

// Visit child node
paintAllNodes(childNode, level+1);
}
}

最佳答案

解决此类问题(对于任何 XML 转换)的最简单方法之一是使用 XSLT

此 XSLT 转换:

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>

<xsl:template match="*">
<something style="background-color:red">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="node()"/>
</xsl:copy>
</something>
</xsl:template>
</xsl:stylesheet>

应用于任何 XML 文档时,例如这个文档:

<nums>
<num>01</num>
<num>02</num>
<num>03</num>
<num>04</num>
<num>05</num>
<num>06</num>
<num>07</num>
<num>08</num>
<num>09</num>
<num>10</num>
</nums>

产生想要的、正确的结果:

<something style="background-color:red">
<nums>
<something style="background-color:red">
<num>01</num>
</something>
<something style="background-color:red">
<num>02</num>
</something>
<something style="background-color:red">
<num>03</num>
</something>
<something style="background-color:red">
<num>04</num>
</something>
<something style="background-color:red">
<num>05</num>
</something>
<something style="background-color:red">
<num>06</num>
</something>
<something style="background-color:red">
<num>07</num>
</something>
<something style="background-color:red">
<num>08</num>
</something>
<something style="background-color:red">
<num>09</num>
</something>
<something style="background-color:red">
<num>10</num>
</something>
</nums>
</something>

注意:如何在 Java 代码中启动 XSLT 转换留给读者作为练习:)

关于Java:如何在 org.w3c.dom 中用 <sometag> 包装所有元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401091/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com