欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

dom4j的基本操作

程序员文章站 2022-07-16 08:42:59
...
# import java.io.FileInputStream;
# import java.io.FileNotFoundException;
# import java.io.FileOutputStream;
# import java.io.IOException;
# import java.io.InputStream;
# import java.io.OutputStreamWriter;
# import java.io.Writer;
# import java.util.Iterator;
# import java.util.List;
# import org.dom4j.Document;
# import org.dom4j.DocumentException;
# import org.dom4j.DocumentHelper;
# import org.dom4j.Element;
# import org.dom4j.io.OutputFormat;
# import org.dom4j.io.SAXReader;
# import org.dom4j.io.XMLWriter;
# import org.xml.sax.EntityResolver;
# import org.xml.sax.InputSource;
# import org.xml.sax.SAXException;
#
# public class MyTest {
#   Document doc = null;
#
#   public MyTest() throws DocumentException, IOException, SAXException {
#     Document doc = loadXML("class.xml"); // 载入XML文档
#     System.out.println(doc.asXML());
#     printDoc(doc); // 打印XML文档
#     storeDoc(doc, "new.xml"); // 把XML文档存入硬盘
#     doc = valideDoc("class.xml"); // 校验dtd XML文档
#     printDoc(doc);
#     doc = validateDocBySxd("classSchema.xml"); // 校验Schema文档
#     printDoc(doc);
#     String url = getClass().getResource("/xml/dom4j/wkjava/class.xsd").toString();
#     doc = validateDocBySxd("classSchema.xml", url); // 校验Schema文档(俩参数)
#     printDoc(doc);
#     doc = createDoc(); // 创建Schema文档
#     storeDoc(doc, "root.xml");
#     doc = validateDocBySxd("classSchema.xml");
#     updateZip(doc, "102202"); // 在文档中修改原属
#     printDoc(doc);
#     doc = validateDocBySxd("classSchema.xml");
#     printNames(doc); // 打印文档中所有学生名字
#     System.out.println(getStudentCount(doc));
#   }
#
#   public static void main(String[] args) {
#     try {
#       new MyTest();
#     } catch (FileNotFoundException e) {
#       e.printStackTrace();
#     } catch (DocumentException e) {
#       e.printStackTrace();
#     } catch (IOException e) {
#       e.printStackTrace();
#     } catch (SAXException e) {
#       e.printStackTrace();
#     }
#   }
#
#   public Document loadXML(String xmlfile) throws FileNotFoundException, DocumentException {
#     SAXReader reader = new SAXReader();
#     doc = reader.read(new FileInputStream(xmlfile));
#     return doc;
#   }
#
#   public void printDoc(Document doc) throws IOException {
#     Writer out = new OutputStreamWriter(System.out, "gb2312");
#     OutputFormat format = OutputFormat.createPrettyPrint();
#     XMLWriter writer = new XMLWriter(out, format);
#     writer.write(this.doc);
#     out.flush();
#   }
#
#   public void storeDoc(Document doc, String filename) throws IOException {
#     Writer out = new OutputStreamWriter(new FileOutputStream(filename), "utf-8");
#     OutputFormat format = OutputFormat.createPrettyPrint();
#     XMLWriter writer = new XMLWriter(out, format);
#     writer.write(this.doc);
#     printDoc(doc);
#     out.close();
#   }
#
#   public Document valideDoc(String xmlfile) throws DocumentException, IOException {
#     EntityResolver resolver = new EntityResolver() {
#       public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException {
#         if (publicId.equals("//class from weiking")) {
#           InputStream in = new FileInputStream("class.dtd");
#           return new InputSource(in);
#         }
#         return null;
#       }
#     };
#     SAXReader reader = new SAXReader(true);
#     reader.setEntityResolver(resolver);
#     Document doc = reader.read(new FileInputStream(xmlfile));
#     return doc;
#   }
#
#   public Document validateDocBySxd(String xmlfile) throws SAXException, DocumentException, IOException {
#     SAXReader reader = new SAXReader(true);
#     reader.setFeature("http://apache.org/xml/features/validation/schema", true);
#     Document doc = reader.read(new FileInputStream(xmlfile));
#     return doc;
#   }
#
#   public Document validateDocBySxd(String xmlfile, String SchemaUrl) throws SAXException, FileNotFoundException,
#       DocumentException {
#     SAXReader reader = new SAXReader(true);
#     reader.setFeature("http://xml.org/sax/features/validation", true);
#     reader.setFeature("http://apache.org/xml/features/validation/schema", true);
#     reader.setFeature("http://apache.org/xml/features/validation/schema-full-checking", true);
#     reader.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", SchemaUrl);
#     Document doc = reader.read(new FileInputStream(xmlfile));
#     return doc;
#   }
#
#   public Document createDoc() {
#     Document doc = DocumentHelper.createDocument();
#     Element root = doc.addElement("root");
#     Element author2 = root.addElement("author").addAttribute("name", "Toby").addAttribute("location", "Germany").addText(
#         "Tobias Rademacher");
#     Element author1 = root.addElement("author").addAttribute("name", "James").addAttribute("location", "UK").addText(
#         "James Strachan");
#     return doc;
#   }
#
#   public void updateZip(Document doc, String zip) {
#     String xpath = "/Class/Teacher/zip";
#     Element e = (Element) doc.selectSingleNode(xpath);
#     e.setText(zip);
#   }
#
#   public void printNames(Document doc) {
#     String xpath = "/Class/Students/Student/name";
#     List list = doc.selectNodes(xpath);
#     for (Iterator i = list.iterator(); i.hasNext();) {
#       Element e = (Element) i.next();
#       System.out.println(e.element("last").getText() + e.valueOf("first"));
#     }
#   }
#
#   public int getStudentCount(Document doc) {
#     int count = 0;
#     String xpath = "count(/Class/Students/Student)";
#     count = doc.numberValueOf(xpath).intValue();
#     // String value = doc.valueOf(xpath);
#     // count = Integer.parseInt(value);
#     return count;
#   }
# }
相关标签: XML Java Apache