我有一个带有HTML数据的XML,并尝试删除“ Body”标签内的自由文本,而不删除子“ DIV”标签的内容。到目前为止,我已经使用了removeChild(),它也删除了BODY内部的所有其他内容。 然后尝试获取NODE_TYPE == 3以仅过滤和删除文本内容,但是运行它时却得到NODE_TYPE == 1。
使用setTextContent()时,它将整个标签数据设置为我的输入字符串。
这是我的XML外观:
<?xml version="1.0" encoding="UTF-8"?>
<HTML>
<HEAD>
<META content="text/html; charset=utf-8" http-equiv="Content-Type"/>
</HEAD>
<BODY>
<DIV class="WordSection1">
<P>Enter Text here</P> <P>COMPLETED</P>
</DIV>
TEXT I WANT TO REMOVE
</BODY>
</HTML>
更改后,我需要这样的输出:
<?xml version="1.0" encoding="UTF-8"?>
<HTML>
<HEAD>
<META content="text/html; charset=utf-8" http-equiv="Content-Type"/>
</HEAD>
<BODY>
<DIV class="WordSection1">
<P>Enter Text here</P> <P>COMPLETED</P>
</DIV>
</BODY>
</HTML>
有什么建议吗?
答案 0 :(得分:0)
我了解您正在使用Java附带的“旧” org.w3c.dom库。假设您将文档内容读入文档Node textNode = doc.getDocumentElement().getLastChild().getPreviousSibling().getLastChild();
doc.getDocumentElement().getLastChild().getPreviousSibling().removeChild(textNode);
,则可以执行以下操作:
$('#changeStatus').onClick()
...尽管就输入XML的更改而言,这不是很可靠。
您可能想尝试其他XML API(例如JDom)。旧的常常使您的生活变得不那么轻松。