Java中的XML解析和DOM管理
我需要用java管理xml。只有DOM就足够了。。。 我需要一些非常简单或更好的,我会真的避免安装新的库 Java 6中要使用的包是什么 我在文档中查看了一下,但并没有提供任何明确的信息,只是在org中引用了xml,但并没有提供什么好的信息。。。或者我没有找到它:(Java中的XML解析和DOM管理,java,xml,dom,Java,Xml,Dom,我需要用java管理xml。只有DOM就足够了。。。 我需要一些非常简单或更好的,我会真的避免安装新的库 Java 6中要使用的包是什么 我在文档中查看了一下,但并没有提供任何明确的信息,只是在org中引用了xml,但并没有提供什么好的信息。。。或者我没有找到它:( 谢谢DOM API位于org.w3c.DOM中。要开始使用,您需要使用javax.xml.parsers.DocumentBuilder,它可以从javax.xml.parsers.DocumentBuilderFactory获得
谢谢DOM API位于
org.w3c.DOM
中。要开始使用,您需要使用javax.xml.parsers.DocumentBuilder
,它可以从javax.xml.parsers.DocumentBuilderFactory
获得
默认情况下,所有这些都随Java 6提供。XML DOM解析器包含在Java 6中。下面是一个关于如何使用它的代码片段:
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;
....
final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
final DocumentBuilder builder = factory.newDocumentBuilder();
final Document doc = docbuilder.parse( new InputSource( reader ) )
这是一个例子。可以找到完整的教程
公共类棋盘打印机{
私人文档生成器;
公共作废打印(字符串文件名,打印流输出)
抛出SAXException,IOException{
Document=builder.parse(文件名);
节点列表节点
=document.getDocumentElement().getChildNodes();
对于(int i=0;i
使用JAXB和解析XMl绑定到数据对象。处理数据对象很容易。
默认情况下,JAXB与Java6捆绑在一起
例如
注意-如果您的XML格式是固定的,那么这是一个很好的选择。我想不出比一个好的示例更有用的东西了。如果您认为该代码无助于编写代码,那么您可能会处于错误的位置;)好吧。。。没有注释的代码不是很有用,但这取决于具体情况…:P在这种情况下,它帮助我很多GVEN,我只需要包的名称和一些参考,如果你认为我是一个经验丰富的程序员(不多,但有一点,是的)那些线是有帮助的:)但是…别急,伙计们。。。没有人在错误的地方。。。。我们都在这里互相帮助。感谢大家的帮助。您可以编写一个简单的帮助器类来完成有关DOM的任务。看到这个了吗
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;
}
}
JAXBContext jc = JAXBContext.newInstance("test.schema");
Unmarshaller unmarshaller = jc.createUnmarshaller();