2 回答
TA贡献1853条经验 获得超6个赞
您可以像这样递归地遍历和重命名 DOM 元素:
private static void renameElement(Document document, Element element) {
document.renameNode(element, null, element.getNodeName().replace(':', '-'));
NodeList children = element.getChildNodes();
for(int i = 0; i < children.getLength(); i++) {
Node child = children.item(i);
if (child instanceof Element) {
renameElement(document, (Element) child);
}
}
}
从根元素开始递归:
renameElement(document, document.getDocumentElement());
但是,您应该考虑是否真的要破坏XML 命名空间格式良好的一致性。好的,它仍然是一致的,但你失去了元素命名空间绑定。
TA贡献1863条经验 获得超2个赞
你总是可以回到痛苦的旧文本处理,你知道。只需搜索和替换正则表达式模式。搜索
<([^:]*):(.*)>
并替换<$1-$2>
为起始标签。
如果您必须在 java 中执行此操作,则有java.util.regex 包。但是sed用于此类任务。
添加回答
举报