Java が XML を解析する方法には、DOM 解析を使用して DOM オブジェクトを介してツリー構造に接続すること、SAX を使用して異なる要素に遭遇したときに行ごとに解析すること、StAX 解析を使用して XML を解析することなどが含まれます。
XML は汎用のデータ交換形式であり、プラットフォーム、言語、システムに依存しないため、データの統合と相互作用に大きな利便性をもたらします。次に、Java で XML を解析する方法をこの記事で詳しく紹介しますが、一定の参考効果があり、皆様のお役に立てれば幸いです。 ##[推奨コース:
#XML チュートリアル
#DOM 解析の使用 #DOM パーサー 主に、XML をメモリ内のオブジェクト グラフ (ツリー構造)、つまりドキュメント オブジェクト モデル (DOM) として使用するために使用されます。まず、パーサーは入力 XML ファイルを走査し、XML ファイル内のノードに対応する DOM オブジェクトを作成します。これらの DOM オブジェクトはツリー構造でリンクされています。パーサーが解析プロセスを完了すると、このツリー状の DOM オブジェクト構造が取得されます。 例: すべてのコード例の XML コンテンツを解析しますpublic class DOMParserDemo {
public static void main(String[] args) throws Exception {
DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
Document document =
builder.parse(
ClassLoader.getSystemResourceAsStream("xml/employee.xml"));
List<Employee> empList = new ArrayList<>();
NodeList nodeList = document.getDocumentElement().getChildNodes();
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node instanceof Element) {
Employee emp = new Employee();
emp.id = node.getAttributes().
getNamedItem("id").getNodeValue();
NodeList childNodes = node.getChildNodes();
for (int j = 0; j < childNodes.getLength(); j++) {
Node cNode = childNodes.item(j);
if (cNode instanceof Element) {
String content = cNode.getLastChild().
getTextContent().trim();
switch (cNode.getNodeName()) {
case "firstName":
emp.firstName = content;
break;
case "lastName":
emp.lastName = content;
break;
case "location":
emp.location = content;
break;
}
}
}
empList.add(emp);
}
}
for (Employee emp : empList) {
System.out.println(emp);
}
}
}
class Employee{
String id;
String firstName;
String lastName;
String location;
@Override
public String toString() {
return firstName+" "+lastName+"("+id+")"+location;
}
}
Rakesh Mishra(111)Bangalore John Davis(112)Chennai Rajesh Sharma(113)Pune
SAX 解析を使用します
SAX パーサーと DOM パーサーの違いは、SAX パーサーは完全な XML をメモリにロードせず、さまざまな要素に遭遇すると XML を 1 行ずつ解析することです。 c 次のようなさまざまなイベントをトリガーします。開始タグ、終了タグ、文字データ、コメントなど。SAX パーサーを使用して XML を解析するコードは次のとおりです:
import java.util.ArrayList; import java.util.List; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHandler; public class SAXParserDemo { public static void main(String[] args) throws Exception { SAXParserFactory parserFactor = SAXParserFactory.newInstance(); SAXParser parser = parserFactor.newSAXParser(); SAXHandler handler = new SAXHandler(); parser.parse(ClassLoader.getSystemResourceAsStream("xml/employee.xml"), handler); for ( Employee emp : handler.empList){ System.out.println(emp); } } } class SAXHandler extends DefaultHandler { List<Employee> empList = new ArrayList<>(); Employee emp = null; String content = null; @Override public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { switch(qName){ case "employee": emp = new Employee(); emp.id = attributes.getValue("id"); break; } } @Override public void endElement(String uri, String localName, String qName) throws SAXException { switch(qName){ case "employee": empList.add(emp); break; case "firstName": emp.firstName = content; break; case "lastName": emp.lastName = content; break; case "location": emp.location = content; break; } } @Override public void characters(char[] ch, int start, int length) throws SAXException { content = String.copyValueOf(ch, start, length).trim(); } } class Employee { String id; String firstName; String lastName; String location; @Override public String toString() { return firstName + " " + lastName + "(" + id + ")" + location; } }
出力結果は次のとおりです:
Rakesh Mishra(111)Bangalore
John Davis(112)Chennai
Rajesh Sharma(113)Pune
StAX は XML のストリーミング API に使用され、StAX パーサーと SA の違いは SAX パーサーです。 StAX パーサーは SAX パーサーとも異なり、SAX パーサーはデータをプッシュしますが、StAX パーサーは必要なデータを XML から抽出します。 StAX パーサーはドキュメント内の現在位置にカーソルを維持し、カーソルで利用可能なコンテンツを抽出できるようにします。一方、SAX パーサーは特定のデータが見つかったときにイベントを発行します。
XMLInputFactory と XMLStreamReader は、XML ファイルのロードに使用できる 2 つのクラスです。 XMLStreamReader を使用して XML ファイルを読み取ると、イベントが整数値の形式で生成され、これらのイベントが XMLStreamConstants の定数と比較されます。次のコードは、StAX パーサーを使用して XML を解析する方法を示しています。 import java.util.ArrayList;
import java.util.List;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
public class StaxParserDemo {
public static void main(String[] args) throws XMLStreamException {
List<Employee> empList = null;
Employee currEmp = null;
String tagContent = null;
XMLInputFactory factory = XMLInputFactory.newInstance();
XMLStreamReader reader =
factory.createXMLStreamReader(
ClassLoader.getSystemResourceAsStream("xml/employee.xml"));
while(reader.hasNext()){
int event = reader.next();
switch(event){
case XMLStreamConstants.START_ELEMENT:
if ("employee".equals(reader.getLocalName())){
currEmp = new Employee();
currEmp.id = reader.getAttributeValue(0);
}
if("employees".equals(reader.getLocalName())){
empList = new ArrayList<>();
}
break;
case XMLStreamConstants.CHARACTERS:
tagContent = reader.getText().trim();
break;
case XMLStreamConstants.END_ELEMENT:
switch(reader.getLocalName()){
case "employee":
empList.add(currEmp);
break;
case "firstName":
currEmp.firstName = tagContent;
break;
case "lastName":
currEmp.lastName = tagContent;
break;
case "location":
currEmp.location = tagContent;
break;
}
break;
case XMLStreamConstants.START_DOCUMENT:
empList = new ArrayList<>();
break;
}
}
for ( Employee emp : empList){
System.out.println(emp);
}
}
}
class Employee{
String id;
String firstName;
String lastName;
String location;
@Override
public String toString(){
return firstName+" "+lastName+"("+id+") "+location;
}
}
Rakesh Mishra(111) Bangalore John Davis(112) Chennai Rajesh Sharma(113) Pune概要: 上記はこの内容全体です。記事、お役に立てれば幸いです
以上がJava で XML を解析するにはどのような方法がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

RSSドキュメントの構造には、3つの主要な要素が含まれています。1。:rOSSバージョンの定義。 2。:タイトル、リンク、説明などのチャネル情報を含む。 3。:タイトル、リンク、説明などを含む特定のコンテンツエントリを表す

RSSドキュメントは、XMLファイルを介してコンテンツの更新を公開するための簡単なサブスクリプションメカニズムです。 1. RSSドキュメント構造は、要素で構成され、複数の要素が含まれています。 2。RSSリーダーを使用して、XMLを解析することにより、チャネルをサブスクライブし、情報を抽出します。 3.高度な使用には、FeedParserライブラリを使用したフィルタリングとソートが含まれます。 4.一般的なエラーには、XMLの解析とエンコードの問題が含まれます。 XML形式とエンコードをデバッグ中に検証する必要があります。 5.パフォーマンス最適化の提案には、キャッシュRSSドキュメントと非同期解析が含まれます。

RSSとXMLは、最新のWebで依然として重要です。 1.RSSはコンテンツを公開および配布するために使用され、ユーザーはRSSリーダーを介して購読して更新を取得できます。 2。XMLはマークアップ言語であり、データストレージと交換をサポートし、RSSファイルはXMLに基づいています。

RSSにより、マルチメディアコンテンツの埋め込み、条件付きサブスクリプション、パフォーマンスとセキュリティの最適化が可能になります。 1)タグを介してオーディオやビデオなどのマルチメディアコンテンツを埋め込みました。 2)XMLネームスペースを使用して条件付きサブスクリプションを実装し、サブスクライバーが特定の条件に基づいてコンテンツをフィルタリングできるようにします。 3)CDATAセクションとXMLSchemaを介してRSSFeedのパフォーマンスとセキュリティを最適化して、標準の安定性とコンプライアンスを確保します。

RSSは、頻繁に更新されるデータを公開するために使用されるXMLベースの形式です。 Web開発者として、RSSを理解することで、コンテンツの集約と自動化の更新機能を改善できます。 RSS構造、解析、および生成方法を学習することにより、RSSFeedsを自信を持って処理し、Web開発スキルを最適化できるようになります。

RSSは、JSONの代わりにXMLを選択しました。1)XMLの構造と検証機能は、RSS複雑なデータ構造のニーズに適したJSONよりも優れています。 2)その時点でXMLは広くサポートされていました。 3)RSSの初期バージョンはXMLに基づいており、標準になっています。

RSSは、頻繁に更新されるコンテンツを購読および読み取りに使用するXMLベースの形式です。その実用的な原則には、生成と消費の2つの部分が含まれ、RSSリーダーを使用することで情報を効率的に取得できます。

RSSドキュメントのコア構造には、XMLタグと属性が含まれます。特定の解析と生成の手順は次のとおりです。1。XMLファイル、プロセス、タグを読み取ります。 2。抽出、、、、などのタグ情報。 3。バージョンの互換性を確保するために、カスタムタグと属性を処理します。 4.キャッシュと非同期処理を使用して、パフォーマンスを最適化してコードの読みやすさを確保します。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール
