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());
}
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());
}
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();
}
}