jdk 1.4 解析xml问题,急,在线! 个人以为link,text,author...等是你在写XML时需要定义的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你不根据节点名字怎么判断它是不是你要的数据呢?SAX是顺序分析读取XML文件 import org.w3c.dom.*;import org.xml.sax.*;import javax.xml.parsers.*;public class ChessboardDOMPrinter { private DocumentBuilder builder; public void print(String fileName, PrintStream out) throws SAXException, IOException { Document document = builder.parse(fileName); NodeList nodes_i = document.getDocumentElement().getChildNodes(); for (int i = 0; i < nodes_i.getLength(); i++) { Node node_i = nodes_i.item(i); if (node_i.getNodeType() == Node.ELEMENT_NODE && ((Element) node_i).getTagName() .equals("CHESSBOARD")) { Element chessboard = (Element) node_i; NodeList nodes_j = chessboard.getChildNodes(); for (int j = 0; j < nodes_j.getLength(); j++) { Node node_j = nodes_j.item(j); if (node_j.getNodeType() == Node.ELEMENT_NODE) { Element pieces = (Element) node_j; NodeList nodes_k = pieces.getChildNodes(); for (int k = 0; k < nodes_k.getLength); k++) { Node node_k = nodes_k.item(k); if (node_k.getNodeType() == Node.ELEMENT_NODE) { Element piece = (Element) node_k; Element position = (Element) piece.getChildNodes().item(0); out.println((pieces.getTagName() .equals("WHITEPIECES") ? "White " : "Black ") + piece.getTagName().toLowerCase() + ": " + position.getAttribute("COLUMN") + position.getAttribute("ROW")); } } } } } } return; }}仅供参考 for (int k = 0; k < nodes_k.getLength); k++) ||此处,报错,在类Node ,好像是没有这个方法的!不可以用的!还有:PrintStream,我没有这个类!在那个包呀? 如果这样,就可能用xpath了. ???xpath?什么呀?请你不要答非所问,好么?我只用jdk1.4的包,其他的不用! 老大xml这么久了xpath是什么你不知道。xpath定位路径语言。sun早支持了。为什么说我答非所问。我不知道楼主什么意思???如果只用jdk1.4的包,其他的不用!在提问时请注明。 我的主题,就是写的jdk1.4解析xml呀,已经注明了呀不知道,有没有别的方法?可以不用知道节点的名称的!如果,我需要解析的xml文件很多,但是里面有不同的节点名称,如果解析必须知道名称,岂不是要有很多的程序么?或是通过bean来传给她参数! CSDN上面有比较详细和完整的“XML的Java解析”,你可以去看看,已经很详细了,例子也有。 只用jdk1.4……毫无理由的条件! spring开启事物失败 java的Swing程序myeclipse中可以运行,导出成可运行jar无法正常运行 struts2的问题 java中怎么嵌套读取数据库? 高分求解dom4j装载30M左右XML文件内存溢出 Jboss下的 域名解析 用struts+Spring+Hibernate框架开发一个创建树的问题,征求方法 用spring发送电子邮件的问题 急问,再线等,请教杀死2000任务管理器下一个进程的Java描述 jsp在运行时的错误,请帮忙解决!!!!! 有关JNDI的问题 分数太多,大家共享
SAX是顺序分析读取XML文件
import org.xml.sax.*;
import javax.xml.parsers.*;public class ChessboardDOMPrinter {
private DocumentBuilder builder; public void print(String fileName, PrintStream out)
throws SAXException, IOException {
Document document = builder.parse(fileName);
NodeList nodes_i
= document.getDocumentElement().getChildNodes();
for (int i = 0; i < nodes_i.getLength(); i++) {
Node node_i = nodes_i.item(i);
if (node_i.getNodeType() == Node.ELEMENT_NODE
&& ((Element) node_i).getTagName()
.equals("CHESSBOARD")) {
Element chessboard = (Element) node_i;
NodeList nodes_j = chessboard.getChildNodes();
for (int j = 0; j < nodes_j.getLength(); j++) {
Node node_j = nodes_j.item(j);
if (node_j.getNodeType() == Node.ELEMENT_NODE) {
Element pieces = (Element) node_j;
NodeList nodes_k = pieces.getChildNodes();
for (int k = 0; k < nodes_k.getLength); k++) {
Node node_k = nodes_k.item(k);
if (node_k.getNodeType() == Node.ELEMENT_NODE) {
Element piece = (Element) node_k;
Element position
= (Element) piece.getChildNodes().item(0);
out.println((pieces.getTagName()
.equals("WHITEPIECES")
? "White " : "Black ")
+ piece.getTagName().toLowerCase()
+ ": "
+ position.getAttribute("COLUMN")
+ position.getAttribute("ROW"));
}
}
}
}
}
}
return;
}
}仅供参考
||
此处,报错,在类Node ,好像是没有这个方法的!不可以用的!
还有:PrintStream,我没有这个类!在那个包呀?
就可能用xpath了.
请你不要答非所问,好么?
我只用jdk1.4的包,其他的不用!
xpath定位路径语言。
sun早支持了。
为什么说我答非所问。我不知道楼主什么意思???如果只用jdk1.4的包,其他的不用!
在提问时请注明。
不知道,有没有别的方法?可以不用知道节点的名称的!
如果,我需要解析的xml文件很多,但是里面有不同的节点名称,如果解析必须知道名称,岂不是要有很多的程序么?或是通过bean来传给她参数!