[英]Remove parent node and keep its children
输入xml:
<P>
<LINK TYPE="ERRATUM" DOI="">
Der Kommentar zum Artikel Schaefer et al. in Heft 4/91 (S. 238) wurde
nicht von PD Dr.
<EM EMTYPE="ITALIC">M. Stöckle</EM>
(Urologische Klinik, Mainz), sondern von PD Dr.
<EM EMTYPE="ITALIC">O. Schofer</EM>
(Kinderklinik der Universität, Mainz) verfasst.
</LINK>
</P>
输出xml:
<P>
Der Kommentar zum Artikel Schaefer et al. in Heft 4/91 (S. 238) wurde
nicht von PD Dr.
<EM EMTYPE="ITALIC">M. Stöckle</EM>
(Urologische Klinik, Mainz), sondern von PD Dr.
<EM EMTYPE="ITALIC">O. Schofer</EM>
(Kinderklinik der Universität, Mainz) verfasst.
</P>
我尝试了这段代码,但没有成功!
private void visitRecursively(Node node, Document document, String tagToRemove) {
// get all child nodes
NodeList list = node.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
// get child node
Node childNode = list.item(i);
if(childNode != null){
if(childNode.getNodeType() == Node.ELEMENT_NODE){
if(childNode.getNodeName().equals(tagToRemove)){
NodeList nodeList = childNode.getChildNodes();
Node parentNode = childNode.getParentNode();
System.out.println("parent= "+parentNode.getNodeName());
for(int j = 0 ; j < nodeList.getLength() ; ++j ){
parentNode.appendChild(nodeList.item(j));
}
}
}
}
visitRecursively(childNode, document, tagToRemove);
}
}
谢谢!
对于基于行的格式设置,我只需将文本解析为列表,然后删除包含“ <LINK
”或“ </LINK
”的行。 然后修剪列表以调整大小,删除所有空白行。
比处理NodeList的递归操作要快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.