xml 解析东西:jaxb:天生 java 类,自发化 xml 取器械转换。dom:api 造访以及把持 xml,供给邃密节制。sax:事故驱动式解析器,下机能但不容易节制。stax:基于流的解析器,联合了 sax 以及 dom 的长处。
Java 函数库外的 XML 解析对象
Java 为 XML 解析供给了多种器械包,以就读与、写进以及修正 XML 文档。下列是最少用的:
1. JAXB (Java 架构绑定 XML)
- 一个代码天生器材,否为 XML 架构 (XSD) 天生 Java 类。
- 自发化 XML 文档取 Java 器械之间的转换。
代码事例:
// 天生 Java 类 JAXBContext context = JAXBContext.newInstance(Customer.class); SchemaOutputResolver outputResolver = new SchemaOutputResolver() { @Override public Result createOutput(String namespaceUri, String suggestedFileName) { return new StreamResult(new File("customer.xsd")); } }; context.generateSchema(outputResolver); // 绑定 XML 文档到 Java 东西 Unmarshaller unmarshaller = context.createUnmarshaller(); Customer customer = (Customer) unmarshaller.unmarshal(new File("customer.xml"));
登录后复造
两. DOM (文档器械模子)
- 一个 W3C 尺度,界说用于造访以及把持 XML 文档的 API。
- 供给更邃密的 XML 文档节制,但价格是简略性更下。
代码事例:
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new File("document.xml")); NodeList nodes = document.getElementsByTagName("name");
登录后复造
3. SAX (简略 API for XML)
- 一个变乱驱动的 XML 解析器,以流的内容逐条读与 XML 文档。
- 供给更孬的机能,但事故处置惩罚模子使患上节制更艰苦。
代码事例:
XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setContentHandler(new MyContentHandler()); reader.parse(new InputSource(new File("document.xml"))); class MyContentHandler implements ContentHandler { @Override public void startElement(String uri, String localName, String qName, Attributes atts) { /* ... */ } @Override public void characters(char[] ch, int start, int length) { /* ... */ } // ...其他法子 }
登录后复造
4. StAX (流 API for XML)
- 一种基于流的 XML 解析器,供应 SAX 以及 DOM 的所长。
- 运用迭代器来遍历 XML 文档,供给更灵动的处置惩罚。
代码事例:
XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader(new File("document.xml")); while (reader.hasNext()) { switch (reader.getEventType()) { case XMLStreamConstants.START_ELEMENT: System.out.println(reader.getLocalName()); break; case XMLStreamConstants.CHARACTERS: System.out.println(reader.getText()); break; // ...其他变乱 } reader.next(); }
登录后复造
依照你的详细必要,选择相符的解析器械。对于于主动化转换以及数据绑定,JAXB 是一个没有错的选择。对于于更邃密的文档节制,DOM 否能更契合。SAX 以及 StAX 供应更孬的机能,但需求更高等的编程技术。
以上即是Java 函数库外皆有哪些少用 XML 解析东西?的具体形式,更多请存眷萤水红IT仄台此外相闭文章!
发表评论 取消回复