将getNodeValue转换为字符串

时间:2010-10-20 10:21:19

标签: xml jsp

昨天我问了一个问题here并得到了很好的回答。但是,我已采用示例代码并尝试打印出当前节点的值,即使用getNodeValue。

每当我运行jsp时,它返回“org.apache.jasper.JasperException:处理JSP页面时发生异常”错误“printOut = n.getNodeValue()。trim();”

以下是我编辑的dogbane代码

String  = "tagToFind";
String printOut = "";
Node n = aNode.getParentNode();
while (n != null && !n.getNodeName().equals(tagToFind)) { 
n = n.getParentNode();
printOut = n.getNodeValue();
}
out.println(printOut);

2 个答案:

答案 0 :(得分:1)

可能是getNodeValue返回null,导致.trim()部分抛出NullPointerException。

getNodeValue为除文本,属性,注释,处理指令和CDATA之外的所有节点类型返回null。请注意,元素和文档为getNodeValue返回null。您正在走向节点树,因此您将非常快速地击中其中一个。

您可以通过在尝试修剪它之前检查空值来解决此问题。

答案 1 :(得分:0)

除了@ Cameron的答案,你应该知道循环逻辑中的一个缺陷。

首先将n更改为指向父级,然后在其上使用getNodeValue()

但是n可能会从.getParentNode()调用中变为空。

尝试交换它们..

printOut = n.getNodeValue();
n = n.getParentNode();