在Blackberry中解析Xml时,空标记返回Null Exception

时间:2012-03-30 10:54:14

标签: blackberry tags xml-parsing

我在黑莓中解析Xml时遇到了一些问题。 如果Xml包含空标记。 代码返回一个Null异常.. 一些解决方案建议使用try和catch ..我该怎么做才能解决这个问题????

这是解析代码

 DocumentBuilderFactory docBuilderFactory= DocumentBuilderFactory. newInstance(); 
             DocumentBuilder docBuilder= docBuilderFactory.newDocumentBuilder();
             docBuilder.isValidating();
             doc = docBuilder.parse(conn.openInputStream());

             doc.getDocumentElement ().normalize ();
             list=doc.getElementsByTagName("*");
             node=new String();
             element = new String();

             //this "for" loop is used to extract all elements and their value, so they can be displayed on the device

             for (int i=0;i<list.getLength();i++){
                 Node value=list.item(i).getChildNodes().item(0);
                 //getting attribute ==> Node value=list.item(i).getAttributes().item(0);


                 node=list.item(i).getNodeName();
                 element=value.getNodeValue();
                 if(node.equals("Name")){
                 //  some code goes here

空标签如:&lt; / tags&gt; 或者&lt;标签&gt; &LT; tag /&gt;

2 个答案:

答案 0 :(得分:0)

代码的哪一部分抛出空指针异常?您的代码似乎假设getElementsByTagName返回的所有结果都有子节点,这是有问题的,因为查询是针对文档中的所有节点的。

答案 1 :(得分:0)

//文字是你的标签名称。

NodeList _textNdList = doc.getElementsByTagName(Text);  

String result = getXMLTagValue(_textNdList,0);

public static String getXMLTagValue(NodeList node,int id)
    {
        if(node.item(id).getChildNodes().item(0) == null)
            return "";
        else
            return node.item(id).getChildNodes().item(0).getNodeValue();
    }

它会帮助你。我也面临同样的问题。并且,我确实使用此解决了这个问题。


`