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仄台此外相闭文章!

发表评论 取消回复