如题
<?xml version="1.0" encoding="utf-8" ?>
<root>
  <province data="北京">
    <city>
      <cityid>101010100</cityid>
      <cityname>北京</cityname>
    </city>
    <city>
      <cityid>101010200</cityid>
      <cityname>海淀</cityname>
    </city>
    <city>
      <cityid>101010300</cityid>
      <cityname>朝阳</cityname>
    </city>
    <city>
      <cityid>101010400</cityid>
      <cityname>顺义 </cityname>
    </city>
  </province>
</root>

解决方案 »

  1.   

    我自己解析的时候有一项总是空   最好能帮解析出来  有个demo更好   
      

  2.   

    public class province
    {
    private String data;
    private List<City> city;
    }这个还有什么好说了 sax 或者pull自己解析吧,很清晰 
      

  3.   

    用dom4j吧之前做java开发时用这个 很简单  http://www.cnblogs.com/macula/archive/2011/07/27/2118003.html可以看看
      

  4.   

    我随便写了个 你下个jar包可以直接用  Document doc = null;
    SAXReader sax = new SAXReader();
    try {
    doc = sax.read(new File("d://aaa.xml"));
    } catch (DocumentException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    Element root = doc.getRootElement(); List<Map<String, String>> dbConnections = new ArrayList<Map<String, String>>();
     
         Iterator<Element> rootIter = root.elementIterator();
         while (rootIter.hasNext()) {
             Element connection = rootIter.next();
             Iterator<Element> childIter = connection.elementIterator();
             Map<String, String> connectionInfo = new HashMap<String, String>();
             List<Attribute> attributes = connection.attributes();
             for (int i = 0; i < attributes.size(); ++i) { // 添加节点属性
              System.out.println(attributes.get(i).getName() +"  attributes value= "+attributes.get(i).getValue());
                 connectionInfo.put(attributes.get(i).getName(), attributes.get(i).getValue());
             }
             while (childIter.hasNext()) { // 添加子节点
                 Element attr = childIter.next();
                 System.out.println(attr.getName().trim() +"        "+attr.getText().trim());
                 connectionInfo.put(attr.getName().trim(), attr.getText().trim());
                 
                 
                 Iterator<Element> ddd = attr.elementIterator();
                 while (ddd.hasNext()) { // 添加子节点
                 Element xxx = ddd.next();
                 System.out.println(xxx.getName().trim() +"        "+xxx.getText().trim());
                 connectionInfo.put(xxx.getName().trim(), xxx.getText().trim());
                 }
             }
             
             dbConnections.add(connectionInfo);
         }