Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的XML解析和DOM管理_Java_Xml_Dom - Fatal编程技术网

Java中的XML解析和DOM管理

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获得

我需要用java管理xml。只有DOM就足够了。。。 我需要一些非常简单或更好的,我会真的避免安装新的库

Java 6中要使用的包是什么

我在文档中查看了一下,但并没有提供任何明确的信息,只是在org中引用了xml,但并没有提供什么好的信息。。。或者我没有找到它:(


谢谢

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