XML ファイルの内容は次のとおりです (「Teacher.xml」という名前) zhangsan 1912000 lisi 23 8000 PULL を使用して解析するためのコードXML ファイル:
import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import org.xmlpull.v1.XmlPullParserFactory; public class PullTry { public static void main(String[] args) { List datas = null; Teacher teacher = null; try { XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); XmlPullParser parser = factory.newPullParser(); parser.setInput(new FileReader("teacher.xml")); int eventType = parser.getEventType(); while (eventType != XmlPullParser.END_DOCUMENT) { String tagName = parser.getName(); switch (eventType) { case XmlPullParser.START_DOCUMENT: // 创建list datas = new ArrayList<>(); break; case XmlPullParser.START_TAG: // 创建Teacher对象 if ("teacher".equals(tagName)) { teacher = new Teacher(); } else if ("name".equals(tagName)) { teacher.setName(parser.nextText()); } else if ("age".equals(tagName)) { teacher.setAge(Integer.parseInt(parser.nextText())); } else if ("money".equals(tagName)) { teacher.setMoney(Double.parseDouble(parser.nextText())); } break; case XmlPullParser.END_TAG: // 把对象添加进List集合中 if ("teacher".equals(tagName)) { datas.add(teacher); } break; default: break; } // 将eventType指向下一步... eventType = parser.next(); } } catch (XmlPullParserException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } for (int i = 0; i < datas.size(); i++) { System.out.println(datas.get(i)); } System.out.println(count); } }
ここでは主に、while ループ内で XML ファイルがどのように読み取られるかを見ていきます。
最初のループ条件は、eventType !=ここには 11 個のeventType 値がありますが、最初の 5 個だけが使用されます。public static final int START_DOCUMENT = 0; public static final int END_DOCUMENT = 1; public static final int START_TAG = 2; public static final int END_TAG = 3; public static final int TEXT = 4;ループの実行プロセスを観察するために、ループ内に次のコード行を追加しました。
System.out.println(eventType+"===第"+count+"次循环==="+tagName);ここで、count はループの実行回数です。このコード行を追加すると、コンソールに次の情報が表示されます:
0===第1次循环===null 2===第2次循环===teachers 4===第3次循环===null 2===第4次循环===teacher 4===第5次循环===null 2===第6次循环===name 4===第7次循环===null 2===第8次循环===age 4===第9次循环===null 2===第10次循环===money 4===第11次循环===null 3===第12次循环===teacher 4===第13次循环===null 2===第14次循环===teacher 4===第15次循环===null 2===第16次循环===name 4===第17次循环===null 2===第18次循环===age 4===第19次循环===null 2===第20次循环===money 4===第21次循环===null 3===第22次循环===teacher 4===第23次循环===null 3===第24次循环===teachers Teacher [name=zhangsan, age=19, money=12000.0] Teacher [name=lisi, age=23, money=8000.0] 24まず、次のeventType値が4の場合(つまり、TEXTが次のループで読み取られる場合)のみ、読み取られたコンテンツparser.nextText()は空ではありません XML ファイルと組み合わせると、次の結論を導き出すことができます: 最初のサイクルでは、eventType 値は 0 であり、これは START_DOCUMENT の場合です。この時点では、tagName 値は空です。 2 番目のループでは、eventType 値は 2 であり、START_TAG の場合です。このとき、tagName の値は Teacher です。つまり、この時点でタグが読み取られます。次のeventTypeの値はTEXTの4なので、今回読み込んだ内容のparser.nextText()の値はラベルからラベルの途中までのテキスト内容になります!つまり、/n に /t を加えたものです。 3 番目のループでは、eventType 値は 4 であり、TEXT の場合です。この時点では、tagName 値は空です。 4 番目のサイクルでは、eventType 値は 2 であり、START_TAG の場合です。このとき、tagName の値は Teacher です。つまり、この時点でタグが読み取られます。注: このとき、if ステートメントは "Teacher".equals(tagName) の戻り値が true であると判断し、次の Teacher = new Teacher(); が実行されて Teacher クラスのオブジェクトが作成されます。次のeventType値はTEXTである4であるため、今回読み取られるコンテンツのparser.nextText()値は、ラベルからラベルの途中までのテキストコンテンツ、つまり/nの1つと/tの2つになります。 5 番目のループでは、eventType 値は 4 であり、TEXT の場合です。この時点では、tagName 値は空です。 6 番目のサイクルでは、eventType 値は 2 であり、START_TAG の場合です。このとき、tagNameの値はnameになります。つまり、この時点でタグが読み取られます。注: このとき、if ステートメントで "name".equals(tagName) の戻り値が true と判断された場合、次の Teacher.setName(parser.nextText()); の値が実行されます。 ()ここは張三でなければなりません。このようにして、この教師オブジェクトの名前
属性
にzhangsanが割り当てられます。7 番目のサイクルでは、eventType 値は 4 であり、TEXT の場合です。この時点では、tagName 値は空です。
他に何も言う必要はないようですが、すべて同じ意味です。 追記: Teacher タグが見つかるたびに (Teacher タグは子タグ、Teachers は親タグ)、オブジェクトが作成され、その中の孫タグ (名前、年齢、お金) が割り当てられます。このオブジェクトの中央の属性。
ps2: この例では、孫タグ内の終了タグは読み取られません。 (それだけです...) xbox:eventType 値が 3 であるケースは 3 つだけです。これら 3 つのケースでは、tagName 値はそれぞれ Teacher、Teacher、Teachers です。これは、ps2 が正しいことをさらに証明します...
以上がPULL を使用して XML ファイルを解析する場合のループ処理のサンプル コード共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

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

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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

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

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

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。
