Java 如何使用Dom4j测试元素的CDATA值?
有人知道如何确定元素是否包含Java 如何使用Dom4j测试元素的CDATA值?,java,cdata,dom4j,Java,Cdata,Dom4j,有人知道如何确定元素是否包含吗?我搜索了dom4japi和Jaxen,但找不到如何做到这一点。。。如果检索到文本,cdata包装将被修剪。 这样行吗 public short getNodeType() 根据节点的类型返回代码。由于可以使用switch语句代替多个if(instanceof)语句,这使得多态处理节点变得更加容易 返回:节点类型(如元素节点或属性节点)的W3C DOM complient代码方法: Node.asXML() 返回整个元素,其值不受任何修改 因此,如果你有: <
吗?我搜索了dom4japi和Jaxen,但找不到如何做到这一点。。。如果检索到文本,cdata包装将被修剪。
这样行吗
public short getNodeType()
根据节点的类型返回代码。由于可以使用switch语句代替多个if(instanceof)语句,这使得多态处理节点变得更加容易
返回:节点类型(如元素节点或属性节点)的W3C DOM complient代码方法:
Node.asXML()
返回整个元素,其值不受任何修改
因此,如果你有:
<nodes>
<node><![CDATA[value]]></node>
</nodes>
调用text方法将返回“value”,但调用“asXML()”将返回:
<node><![CDATA[value]]></node>
从这里开始,我想您可以对CDATA标记进行字符串搜索。从技术上讲,您仍然可以这样做
public boolean isCDATA(org.dom4j.Node node) {
for (org.dom4j.Node n : node.content()) {
if (org.w3c.dom.Node.CDATA_SECTION_NODE == n.getNodeType()) {
return true;
}
}
return false;
}
你问我:-)?它不会,它返回元素的类型。。。我关心它的值。你可以使用它,但它必须与content()方法结合使用。你是对的,但它必须是元素,因为该方法在AbstractBranch类中。