検索
ホームページバックエンド開発XML/RSS チュートリアルdom4j を使用して Java で XML を解析する (サンプルコード)

Java にはすでに Dom と Sax という 2 つの標準的な解析メソッドがあります

が、私のような初心者にとっては操作が簡単ではなく、いくつかのコードはうんざりします

このため、3 者開発チームによる素晴らしい記事をご覧ください。は、Jdom や Dom4j などのツールを開発しています。現在の傾向を考慮して、ここでは再帰などの複雑な操作を含まない Dom4j の基本的な使用法について説明します。Dom4j の使用方法は数多くあります。公式ウェブサイトは少しわかりにくいので、ここでは書きません

まず、xml ドキュメントを作成する必要があります。それから、それを解析できます

xml ドキュメント:

<?xml version="1.0" encoding="UTF-8"?> 
<books> 
   <book id="001"> 
      <title>Harry Potter</title> 
      <author>J K. Rowling</author> 
   </book> 
   <book id="002"> 
      <title>Learning XML</title> 
      <author>Erik T. Ray</author> 
   </book> 
</books>

例 1: List を使用して xml

import java.io.File;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Demo {
 public static void main(String[] args) throws Exception {
  SAXReader reader = new SAXReader();
  File file = new File("books.xml");
  Document document = reader.read(file);
  Element root = document.getRootElement();
  List<Element> childElements = root.elements();
  for (Element child : childElements) {
   //未知属性名情况下
   /*List<Attribute> attributeList = child.attributes();
   for (Attribute attr : attributeList) {
    System.out.println(attr.getName() + ": " + attr.getValue());
   }*/

   //已知属性名情况下
   System.out.println("id: " + child.attributeValue("id"));

   //未知子元素名情况下
   /*List<Element> elementList = child.elements();
   for (Element ele : elementList) {
    System.out.println(ele.getName() + ": " + ele.getText());
   }
   System.out.println();*/

   //已知子元素名的情况下
   System.out.println("title" + child.elementText("title"));
   System.out.println("author" + child.elementText("author"));
   //这行是为了格式化美观而存在
   System.out.println();
  }
 }
}
を解析します。

例2: Iteratorを使って反復するxmlの解析方法

import java.io.File;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
public class Demo {
 public static void main(String[] args) throws Exception {
  SAXReader reader = new SAXReader();
  Document document = reader.read(new File("books.xml"));
  Element root = document.getRootElement();

  Iterator it = root.elementIterator();
  while (it.hasNext()) {
   Element element = (Element) it.next();

   //未知属性名称情况下
   /*Iterator attrIt = element.attributeIterator();
   while (attrIt.hasNext()) {
    Attribute a  = (Attribute) attrIt.next();
    System.out.println(a.getValue());
   }*/

   //已知属性名称情况下
   System.out.println("id: " + element.attributeValue("id"));

   //未知元素名情况下
   /*Iterator eleIt = element.elementIterator();
   while (eleIt.hasNext()) {
    Element e = (Element) eleIt.next();
    System.out.println(e.getName() + ": " + e.getText());
   }
   System.out.println();*/

   //已知元素名情况下
   System.out.println("title: " + element.elementText("title"));
   System.out.println("author: " + element.elementText("author"));
   System.out.println();
  }
 }
}

動作結果:

例3: XML文書を作成してファイルに出力

import java.io.File;
import java.io.FileOutputStream;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;

public class Demo {
 public static void main(String[] args) throws Exception {
  Document doc = DocumentHelper.createDocument();
  //增加根节点
  Element books = doc.addElement("books");
  //增加子元素
  Element book1 = books.addElement("book");
  Element title1 = book1.addElement("title");
  Element author1 = book1.addElement("author");

  Element book2 = books.addElement("book");
  Element title2 = book2.addElement("title");
  Element author2 = book2.addElement("author");

  //为子节点添加属性
  book1.addAttribute("id", "001");
  //为元素添加内容
  title1.setText("Harry Potter");
  author1.setText("J K. Rowling");

  book2.addAttribute("id", "002");
  title2.setText("Learning XML");
  author2.setText("Erik T. Ray");

  //实例化输出格式对象
  OutputFormat format = OutputFormat.createPrettyPrint();
  //设置输出编码
  format.setEncoding("UTF-8");
  //创建需要写入的File对象
  File file = new File("D:" + File.separator + "books.xml");
  //生成XMLWriter对象,构造函数中的参数为需要输出的文件流和格式
  XMLWriter writer = new XMLWriter(new FileOutputStream(file), format);
  //开始写入,write方法中包含上面创建的Document对象
  writer.write(doc);
 }
}
dom4j を使用して Java で XML を解析する (サンプルコード)

実行結果:

Java での dom4j 解析の使い方の詳細 xml (サンプルコード) 関連の記事については、PHP 中国語 Web サイトに注目してください。 dom4j を使用して Java で XML を解析する (サンプルコード)

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
RSSドキュメント:Webシンジケーションの基礎RSSドキュメント:Webシンジケーションの基礎Apr 18, 2025 am 12:04 AM

RSSドキュメントは、頻繁に更新されるコンテンツを公開および購読するために使用されるXMLベースの構造化されたファイルです。その主な機能には、1)自動化されたコンテンツの更新、2)コンテンツの集約、3)ブラウジング効率の改善。 RSSFeedを通じて、ユーザーはタイムリーにさまざまなソースから最新情報を購読および取得できます。

RSSのデコード:コンテンツフィードのXML構造RSSのデコード:コンテンツフィードのXML構造Apr 17, 2025 am 12:09 AM

RSSのXML構造には、1。XML宣言とRSSバージョン、2。チャネル(チャネル)、3。アイテムが含まれます。これらの部品はRSSファイルの基礎を形成し、XMLデータを解析することにより、ユーザーがコンテンツ情報を取得および処理できるようにします。

XMLベースのRSSフィードを解析して利用する方法XMLベースのRSSフィードを解析して利用する方法Apr 16, 2025 am 12:05 AM

rssfeedsusexmltosyndicatecontent; parsingtheminvolvesloadingxml、navigating structure、and extractingdata.applicationsincludebuildingnewsaggretationsandtrackingpodcastepisodes。

RSSドキュメント:お気に入りのコンテンツをどのように配信するかRSSドキュメント:お気に入りのコンテンツをどのように配信するかApr 15, 2025 am 12:01 AM

RSSドキュメントは、XMLファイルを介してコンテンツの更新を公開することで機能し、ユーザーはRSSリーダーを介して通知をサブスクライブして受信します。 1。コンテンツパブリッシャーは、RSSドキュメントを作成および更新します。 2。RSSリーダーは、XMLファイルに定期的にアクセスして解析します。 3.ユーザーは、更新されたコンテンツを閲覧および読み取ります。使用例:TechCrunchのRSSフィードを購読するには、RSSリーダーへのリンクをコピーするだけです。

XMLを使用したフィードの構築:RSSの実践ガイドXMLを使用したフィードの構築:RSSの実践ガイドApr 14, 2025 am 12:17 AM

XMLを使用してRSSFeedを構築する手順は次のとおりです。1。ルート要素を作成してバージョンを設定します。 2.チャネル要素とその基本情報を追加します。 3.タイトル、リンク、説明を含むエントリ要素を追加します。 4. XML構造を文字列に変換して出力します。これらの手順を使用すると、有効なRSSFeedをゼロから作成し、リリース日や著者情報などの追加要素を追加することにより、機能を強化できます。

RSSドキュメントの作成:ステップバイステップのチュートリアルRSSドキュメントの作成:ステップバイステップのチュートリアルApr 13, 2025 am 12:10 AM

RSSドキュメントを作成する手順は次のとおりです。1。要素を含むルート要素を使用して、XML形式で書き込みます。 2。チャネル情報を説明する要素など。 3.要素を追加します。それぞれがコンテンツエントリを表します。 4.オプションで、コンテンツを濃縮するための要素を追加します。 5. XML形式が正しいことを確認し、オンラインツールを使用してパフォーマンスを最適化し、コンテンツを更新します。

RSSにおけるXMLの役割:シンジケートコンテンツの基礎RSSにおけるXMLの役割:シンジケートコンテンツの基礎Apr 12, 2025 am 12:17 AM

RSSにおけるXMLの中心的な役割は、標準化された柔軟なデータ形式を提供することです。 1. XMLの構造とマークアップ言語の特性により、データ交換とストレージに適しています。 2。RSSはXMLを使用して標準化された形式を作成して、コンテンツの共有を容易にします。 3. RSSでのXMLの適用には、タイトルやリリース日などのフィードコンテンツを定義する要素が含まれます。 4.利点には標準化とスケーラビリティが含まれ、課題にはドキュメントの冗長および厳密な構文要件が含まれます。 5.ベストプラクティスには、XMLの有効性の検証、シンプルな状態を維持し、CDATAの使用、定期的に更新されます。

XMLから読み取り可能なコンテンツまで:RSSフィードを分類しますXMLから読み取り可能なコンテンツまで:RSSフィードを分類しますApr 11, 2025 am 12:03 AM

rssfeedsarexmldocumentsusedforcontentaggregationanddistribution.totransformthemintoreadablecontent:1)parsethexmlusinglibrarieslibrarieslibrarieslibrarieslibrarieslibrarieslibrarieslibraries.2)heandlederentrssiversions andpotentialparsingerrors.3)変換された拡張型拡張型のfienderidederidrederidederidederidedionderiondiontiontiontiontiontiontiontiontional

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター