検索
ホームページバックエンド開発XML/RSS チュートリアルXML 解析における DOM 解析の詳細な紹介

1. 概念

xml ファイルは主に情報を記述するために使用されるため、xml 文書を取得した後、xml 内の要素に従って対応する情報を抽出することが XML 解析です。 Xmlの解析にはDOM解析とSAX解析の2通りの方法があり、それぞれの操作方法は図に示すとおりです。

XML 解析における DOM 解析の詳細な紹介

2. DOM 解析

DOM 解析に基づく XML パーサーは、A ツリーを使用してオブジェクト モデルのコレクションに変換します。情報を保存するデータ構造です。 DOM インターフェイスを介して、アプリケーションはいつでも XML ドキュメント内のデータの任意の部分にアクセスできるため、DOM インターフェイスを使用してアクセスするこの方法はランダム アクセスとも呼ばれます。

DOM アナライザーは XML ファイル全体をツリーに変換してメモリに保存するため、この方法にも欠陥があります。ファイル構造が大きい場合やデータが複雑な場合、この方法のメモリ要件は高くなります。また、複雑な構造を持つツリーを走査することも非常に時間のかかる操作です。ただし、DOM で使用されるツリー構造は XML の情報格納方法と一致しており、そのランダム アクセスも使用できるため、DOM インターフェイスは依然として広く使用される価値があります。

ここでは、xml をツリーに変換するデータ構造を示す例を示します。

<?xml version="1.0" encoding="GBK"?>
<address>
	<linkman>
		<name>Van_DarkHolme</name>
		<email>van_darkholme@163.com</email>
	</linkman>
	<linkman>
		<name>Bili</name>
		<email>Bili@163.com</email>
	</linkman>
</address>

xml をツリーに変換する構造は次のとおりです。

XML 解析における DOM 解析の詳細な紹介

DOM 解析には次の 4 つの主要な操作インターフェイスがあります

ドキュメント: このインターフェイスは XML ドキュメント全体を表し、ツリーへの入り口である DOM 全体のルートとして表されます。このインターフェイスを通じて、XML 内のすべての要素のコンテンツにアクセスできます。一般的な方法は次のとおりです。

(注: 上図には示されていませんが、name と email の属性もそれぞれ 1 つのノードです)

Document の共通メソッド

XML 解析における DOM 解析の詳細な紹介

#Node: このインターフェイスは DOM ツリー全体で重要な役割を果たします。DOM 操作のコア インターフェイスは Node (Document、Element、Attr) から継承されます。 DOM ツリーでは、各 Node インターフェイスは DOM ツリー ノードを表します。

Node インターフェイスの共通メソッド

XML 解析における DOM 解析の詳細な紹介

NodeList: このインターフェイスはポイントのコレクションを表します。順序付けられた関係にある一連のノードに使用されます。

NodeList の共通メソッド

XML 解析における DOM 解析の詳細な紹介

##NamedNodeMap: このインターフェイスは、ノードのグループとその一意の名前との間の 1 対 1 の関係を表し、主に次の目的で使用されます。ノード属性を表す

上記の 4 つのコア インターフェイスに加えて、プログラムで DOM 解析操作を実行する必要がある場合は、次の手順に従う必要があります:

1. DocumentBuilderFactor を確立して、 DocumentBuilder オブジェクト:

DocumentBuilderFactory Factory = DocumentBuilderFactory.newInstance();

2. DocumentBuidler の作成:

DocumentBuilder builder = Factory.newDocumentBuilder();

3. Document オブジェクトを作成し、ツリーの Entry を取得します:

Document doc = builder.parse("xml ファイルの相対パスまたは絶対パス");

4. NodeList を作成します:

NodeList n1 = doc .getElementByTagName("Read Node");

5. XML 情報の取得

public class DOMDemo01 {
	
	public static void main(String[] args) throws ParserConfigurationException, SAXException, IOException{
		//建立DocumentBuilderFactor,用于获得DocumentBuilder对象:
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		//2.建立DocumentBuidler:
		DocumentBuilder builder = factory.newDocumentBuilder();
		//3.建立Document对象,获取树的入口:
		Document doc = builder.parse("src//dom_demo_02.xml");
		//4.建立NodeList:
		NodeList node = doc.getElementsByTagName("linkman");
		//5.进行xml信息获取
		for(int i=0;i<node.getLength();i++){
			Element e = (Element)node.item(i);
			System.out.println("姓名:"+
					e.getElementsByTagName("name").item(0).getFirstChild().getNodeValue());
			System.out.println("邮箱:"+
					e.getElementsByTagName("email").item(0).getFirstChild().getNodeValue());
		}	
		
	}
}

XML 解析における DOM 解析の詳細な紹介

上記のコードは次のようになります。 4 番目のポイントから分析します:

doc.getElementByTagName("linkman") を通じて NodeList を取得します。上記の XML ファイルには 2 つの linkman ノードが含まれているため、ここでの NodeList には 2 つのノード (両方とも linkman ノード) が含まれます。ループメソッドを通じて XML ファイル内の情報を取得します。

Element e = (Element)node.item(i) はリンクマン ノードを取得します。つまり、e はリンクマンを指します

e.getElementTagName("name").item(0) .getFirstChild ().getNodeValue();

getElementTagName("name"); リンクマンの下にあるすべての名前ノードを取得しました (実際には 1 つだけ);

Item(0); 最初の名前を取得しますノード (1 つだけ);

getFristChild(); コンテンツ バンが配置されているノードである名前ノードの下のテキスト ノードを取得します (前述したように、テキスト コンテンツも別のノードであり、Document メソッド リストの createTextNode() はテキスト ノードを作成します);

getNodeValue() はテキスト ノードの値を取得します: van_darkholme;

その他の関連する質問については、PHP 中国語 Web サイトを参照してください: XML ビデオ チュートリアル

以上がXML 解析における DOM 解析の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はCSDNで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
JSONに基づいたRSSの代替品はありますか?JSONに基づいたRSSの代替品はありますか?Apr 10, 2025 am 09:31 AM

JSonFeedは、JSONベースのRSSの代替品であり、その利点のシンプルさと使いやすさがあります。 1)JSonFeedはJSON形式を使用しますが、これは簡単に生成して解析できます。 2)動的生成をサポートし、最新のWeb開発に適しています。 3)JSonFeedを使用すると、コンテンツ管理の効率とユーザーエクスペリエンスが向上する可能性があります。

RSSドキュメントツール:フィードの構築、検証、公開RSSドキュメントツール:フィードの構築、検証、公開Apr 09, 2025 am 12:10 AM

RSSFeedsを構築、検証、公開する方法は? 1。ビルド:Pythonスクリプトを使用して、タイトル、リンク、説明、リリース日など、RSSFeedを生成します。 2。検証:FeedValidator.orgまたはPythonスクリプトを使用して、RSSFeedがRSS2.0標準に準拠しているかどうかを確認します。 3.公開:RSSファイルをサーバーにアップロードするか、フラスコを使用してRSSFeedを動的に生成および公開します。これらの手順を通じて、コンテンツを効果的に管理および共有できます。

XML/RSSフィードのセキュリティ:包括的なセキュリティチェックリストXML/RSSフィードのセキュリティ:包括的なセキュリティチェックリストApr 08, 2025 am 12:06 AM

XML/RSSFeedsのセキュリティを確保する方法には、次のものが含まれます。1。データ検証、2。暗号化された伝送、3。アクセス制御、4。ログと監視。これらの測定値は、ネットワークセキュリティプロトコル、データ暗号化アルゴリズム、アクセス制御メカニズムを介して、データの整合性と機密性を保護します。

XML/RSSインタビューの質問と回答:専門知識をレベルアップしますXML/RSSインタビューの質問と回答:専門知識をレベルアップしますApr 07, 2025 am 12:19 AM

XMLはデータの保存と転送に使用されるマークアップ言語であり、RSSは頻繁に更新されるコンテンツを公開するために使用されるXMLベースの形式です。 1)XMLはタグと属性を介してデータ構造を記述します。2)RSSは特定のタグの公開と購読コンテンツを定義します。3)XMLは、PythonのXML.ETREE.ELEMENTTREEモジュールを使用して作成および解析できます。 XMLLINT、7)SAXパーサーで大規模なXMLファイルを処理することで検証できます。パフォーマンスを最適化できます。

高度なXML/RSSチュートリアル:次の技術インタビューを促進します高度なXML/RSSチュートリアル:次の技術インタビューを促進しますApr 06, 2025 am 12:12 AM

XMLはデータストレージと交換用のマークアップ言語であり、RSSは更新されたコンテンツを公開するためのXMLベースの形式です。 1。XMLは、データ交換とストレージに適したデータ構造を定義します。 2.RSSはコンテンツサブスクリプションに使用され、解析時に特別なライブラリを使用します。 3. XMLを解析するときは、DOMまたはSAXを使用できます。 XMLおよびRSSを生成する場合、要素と属性を正しく設定する必要があります。

XML/RSSからJSONまで:最新のデータ変換戦略XML/RSSからJSONまで:最新のデータ変換戦略Apr 05, 2025 am 12:08 AM

Pythonを使用して、XML/RSSからJSONに変換します。 1)解析データ、2)フィールドを抽出する、3)JSONに変換、4)出力JSON。 XML.Etree.ElementTreeおよびFeedParserライブラリを使用してXML/RSSを解析し、JSONライブラリを使用してJSONデータを生成します。

XML/RSSおよびREST API:現代のWeb開発のためのベストプラクティスXML/RSSおよびREST API:現代のWeb開発のためのベストプラクティスApr 04, 2025 am 12:08 AM

XML/RSSとRESTAPIは、最新のネットワーク開発で協力します。1)XML/RSSは、コンテンツの公開と購読に使用され、2)Restapiはネットワークサービスの設計と運用に使用されます。これら2つを使用すると、効率的なコンテンツ管理と動的な更新を実現できます。

XMLに画像パスを追加する方法XMLに画像パスを追加する方法Apr 03, 2025 am 09:18 AM

XMLに画像パスを追加するには、&lt; image&gt;が必要です。要素、その構文は&lt; image src = "image_path" /&gt;で、src属性が画像ファイルへのパスを指定します。パスは相対パスまたは絶対パスであり、画像ファイルはXMLファイルと同じディレクトリであるか、フルパスを指定する必要があります。

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ヘンタイを無料で生成します。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、