【发布时间】:2019-02-15 01:04:12
【问题描述】:
我有一个 XML 文件,其前缀如下:
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
我想重命名前缀移动冒号以支持破折号,所以:
<h-table>
<h-tr>
<h-td>Apples</h:td>
<h-td>Bananas</h:td>
</h-tr>
</h-table>
<f-table>
<f-name>African Coffee Table</f:name>
<f-width>80</f:width>
<f-length>120</f:length>
</f-table>
使用 DOM 解析器,我知道可以按名称获取元素,但在我的情况下,我需要将它们全部应用重命名,因为模式始终相同。
现在这个函数我要写无数次了,因为一个只针对一个标签:
NodeList nodes = document.getElementsByTagName("h:table");
for (Node eachNode: nodes) {
document.renameNode(eachNode, null, "h-table");
}
是否可以使用更通用的方法?
【问题讨论】:
-
我不确定这是一个好主意,因为
f:xxx意味着f是标签xxx在adn XML 解析器中定义的命名空间可能依赖于冒号分隔符。为什么要把冒号改成破折号? -
我在 Neo4j 中使用 APOC 导入 xml,它完全忽略了带逗号的命名空间。所以我需要用破折号来改变它。
标签: java xml xml-parsing