Middle
JAXP чист?
sobes.tech AI
Ҷавоб аз AI
API-и Java барои коркарди XML (JAXP) — маҷмӯи API, ки роҳи стандартӣ барои таҳлил ва коркарди ҳуҷҷатҳои XML дар Java пешниҳод мекунад.
Компонентҳои асосии JAXP:
- SAX (Simple API for XML): Парсери рӯйдодӣ. Ҳуҷҷати XML-ро дар вақти хондан коркард мекунад, рӯйдодҳоро (масалан, оғози унсур, охири унсур, матн) истеҳсол мекунад. Барои кор бо ҳуҷҷатҳои калон, ки иҷроиш муҳим аст ва ниёз ба нигоҳдории тамоми ҳуҷҷат дар хотира нест, мувофиқ аст.
- DOM (Document Object Model): XML-ро ҳамчун дарахтҳои объектӣ дар хотира намоиш медиҳад. Имкон медиҳад, ки ба структураи ҳуҷҷат озодона ҳаракат кунед ва онро тағир диҳед. Барои кор бо ҳуҷҷатҳои миёнаҳаҷм ё вақте ки ба дастрасии бисёрмаротиба ба қисмҳои гуногуни ҳуҷҷат ниёз аст, мувофиқ аст.
- StAX (Streaming API for XML): API-и ҷараёнӣ, ки итераторҳои рӯйдодҳоро барои хондани XML пешниҳод мекунад. Иҷрои корро нисбат ба SAX ва DOM бештар гувоҳ мекунад.
- XSLT (Extensible Stylesheet Language Transformations): API барои иҷрои табдилоти ҳуҷҷатҳои XML бо истифода аз услубҳои XSLT.
Масалан барои истифодаи DOM Parser:
import org.w3c.dom.Document;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
// Масалан барои сохтани DOM парсер
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse(new File("file.xml")); // Таҳлили XML файли
Масалан барои истифодаи SAX Parser:
import org.xml.sax.helpers.DefaultHandler;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import java.io.File;
// Масалан барои сохтани SAX парсер
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
DefaultHandler handler = new DefaultHandler() {
// Азнавсозии методҳо барои кор бо рӯйдодҳо
@Override
public void startElement(String uri, String localName, String qName, org.xml.sax.Attributes attributes) {
// Логикаи оғози унсур
}
};
saxParser.parse(new File("file.xml"), handler); // Таҳлили XML файли
Афзалиятҳои JAXP:
- Стандартикунонии: Пешкаш мекунад як интерфейси ягона барои кор бо XML парсериҳо ва процессорҳо.
- Независимӣ аз иҷроиш: Имкон медиҳад, ки байни иҷроишҳои гуногун (масалан, Xerces, Crimson) бе тағир додани коди барнома гузаред.
- Дастгирии моделҳои гуногуни парсинг: SAX, DOM, StAX.
Норасоиҳои JAXP:
- Мумкин аст каме пастраво дар сатҳи пасттар бошад дар муқоиса бо китобхонаҳои XML-и баландтар (масалан, JDOM, dom4j).