android从xml文件获取节点列表属性

android从xml文件获取节点列表属性,android,xml-parsing,android-listview,Android,Xml Parsing,Android Listview,我从xml文件生成listview。我将从“segment”标记中获取元素。当我运行和调试代码时,我会得到以下错误java.lang.NullPointerException。如果我进行愚蠢的编码,请更正我的代码。这是我在android中的java代码: public class ListSegment extends ListActivity { String URL_XML = "http://www.macetlagi.com/maps/st/canvaser/3/tb/tb123";

我从xml文件生成listview。我将从“segment”标记中获取元素。当我运行和调试代码时,我会得到以下错误
java.lang.NullPointerException
。如果我进行愚蠢的编码,请更正我的代码。这是我在android中的java代码:

public class ListSegment extends ListActivity {

String URL_XML = "http://www.macetlagi.com/maps/st/canvaser/3/tb/tb123";

static final String KEY_SEGMENT = "segment";
static final String KEY_SEGMENT_ID = "segment_id";
static final String KEY_MAIN_SEGMENT = "main_segment_name"; 

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.listsegment_main);

    ArrayList<HashMap<String, String>> menuItems = new ArrayList<HashMap<String, String>>();

    XMLParser parser = new XMLParser();
    String xml = parser.getXmlFromUrl(URL_XML); 
    Document doc = parser.getDomElement(xml);       

            NodeList nL = doc.getElementsByTagName(KEY_SEGMENT);
            for (int i = 0; i < nL.getLength(); i++) {
                Node node = nL.item(i);
                    if(node.hasAttributes()) {
                        NamedNodeMap attr_id = node.getAttributes();
                        attr_id.getNamedItem(KEY_SEGMENT);
                    }
                HashMap<String, String> map =  new HashMap<String, String>();
                Element e = (Element) nL.item(i);
                map.put(KEY_SEGMENT_ID, parser.getValue(e, KEY_SEGMENT_ID));
                map.put(KEY_MAIN_SEGMENT, parser.getValue(e, KEY_MAIN_SEGMENT));

            menuItems.add(map);
            }

            ListAdapter adapter = new SimpleAdapter(this, menuItems, R.layout.list_item,
                    new String[] {KEY_SEGMENT_ID, KEY_MAIN_SEGMENT}, new int[] {
                    R.id.segmentid, R.id.segmentname
            });
            setListAdapter(adapter);
  }
 }
公共类ListSegment扩展ListActivity{
字符串URL_XML=”http://www.macetlagi.com/maps/st/canvaser/3/tb/tb123";
静态最终字符串键\u SEGMENT=“SEGMENT”;
静态最终字符串键\u SEGMENT\u ID=“SEGMENT\u ID”;
静态最终字符串键\u MAIN\u SEGMENT=“MAIN\u SEGMENT\u name”;
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.listsegment_main);
ArrayList menuItems=新建ArrayList();
XMLParser=新的XMLParser();
字符串xml=parser.getXmlFromUrl(URL\uxml);
Document doc=parser.getdoElement(xml);
NodeList nL=doc.getElementsByTagName(键段);
对于(int i=0;i
请提供更多信息:例如,来自logcat,或者至少指出引发
NullPointerException
的行。是的..我在“NodeList nL=doc.getElementsByTagName(KEY_段);”行中出错。请就这个问题向我提出建议,@mh这表明
doc
null
,这意味着语句
parser.getdoElement(xml)
不会返回您期望的结果。我建议您调试项目并查看实际的运行时值。这样就很容易判断出哪里出了问题。