XML里的类型是这样子 用网上的方法取到的值为null,是不是和XML存储数据的类型有关、?如果是怎么取呢?
XML类型:
<diy>
 <area src="product/10002/123_1.jpg" dest="WEB-INF/images/diy/pic/1000/100022_1_" logocount="2">
<logo type="image" direction="1">
  <url value="WEB-INF/images/clipart/Best-Seller/thumb2.jpg" /> 
  <x value="200" /> 
  <y value="170" /> 
  <width value="100" /> 
  <heigth value="100" /> 
  <deg value="21" /> 
  <offsetX value="-15" /> 
  <offsetY value="-15" /> 
  </logo>
<logo type="text" direction="1">
  <url value="WEB-INF/images/text/1000/100022_20111017161701553.gif" /> 
  <x value="183" /> 
  <y value="303" /> 
  <width value="140" /> 
  <heigth value="60" /> 
  <deg value="-46" /> 
  <offsetX>-1</offsetX> 
  <offsetY value="-42" /> 
  <content value="sdaad" /> 
  <font value="Arial-Bold-Italic" /> 
  <size value="50" /> 
  <color value="rgb(0,255,255)" /> 
  <strokecolor value="rgb(153,50,204)" /> 
  </logo>
  </area>
  </diy>java代码如下:
File f = new File(urlXML);
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();   
    Document doc = builder.parse(f); 
    System.out.println(doc.getFirstChild().getNodeName());
    NodeList nl = doc.getElementsByTagName("diy");
System.out.println(nl.getLength());                             //值为1 
    for (int i = 0; i < nl.getLength(); i++) {  
       System.out.print( doc.getElementsByTagName("offsetX").item(i).getNodeValue());   
       }

解决方案 »

  1.   

    看看org.w3c.Dom中的类看看,有问题现查找api然后说说你的想法,大家才能帮你分析阿
      

  2.   


    LZ改一下路径就可以执行看看结果 // jdom读取xml
    @SuppressWarnings("unchecked")
    public static void readXML2() {
    File f = new File("f:/test.xml");
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder;
    try {
    builder = factory.newDocumentBuilder();
    org.w3c.dom.Document doc = builder.parse(f);
    System.out.println(doc.getFirstChild().getNodeName());
    NodeList nl = doc.getElementsByTagName("diy");
    System.out.println(nl.getLength()); // 值为1
    NodeList nls = doc.getElementsByTagName("offsetX");
    // NodeList ns = nls.getChildNodes();
    for(int k=0;k<nls.getLength();k++){
    System.out.println(nls.item(k).getAttributes().getNamedItem("value") != null ? "offsetX的value属性值为:" + nls.item(k).getAttributes().getNamedItem("value").getTextContent() : "offsetX的value属性值: 未配置");
    System.out.println(!nls.item(k).getTextContent().equals("") ? "offsetX元素的文本值为:" + nls.item(k).getTextContent() : "offsetX元素的文本值: 未配置");
    System.out.println();
    }

    } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
      

  3.   

    建议楼主先用jtidy先处理下文件,不全语义。得到的就是org.w3c.Dom标准文档~然后再做处理~我最近也在做抽取html标签的工作,所以是按照上面的流程来的