検索

XML とは何ですか? XMLの説明例

Jun 20, 2017 pm 04:54 PM
詳しい説明

ディレクトリ構造:


コンテンツ構造[-]
  1. XMLとは

  2. XMLを解析する

    1. XMLを解析する2つの方法

    2. dom4jを使用してxmlを解析する

      1. dom4jのAPIの一部

      2. XMLファイルのコンテンツ全体を出力します

    3. XPathを使用してdom4jでXMLを解析します

      1. APIの関連部分

      2. XPath パス式

      3. ワイルドカード

      4. 述語

  3. Javaを使ってDTD

    との違い
    1. 参考記事

  4. 1 XML

    とは

    XML (eXtensible Markup Language) は拡張可能なマークアップ言語、カスタマイズ可能な言語。
  5. 2 XML の解析

    2.1 2 つの解析方法
XML の解析は、SAX と DOM の 2 つの方法に分けられます。

DOM: (Document Object Model) は、W3C 組織が推奨する XML を処理する方法です。このメソッドを使用して XML ドキュメントを解析すると、ドキュメント内のすべての要素間の階層関係に従ってメモリ内にツリー構造が構築されます。したがって、メモリに大きな負荷がかかり、解析と読み取りが遅くなります。利点は、ノードの内容を走査して変更できることです。

SAX: (Simple API for XML) は XML 解析の代替手段です。 DOM と比較すると、解析速度が速く、メモリ負荷が低いという欠点は、ノードの内容を変更できないことです。

2.2 dom4j を使用して XML を解析する

dom4j を使用して XML を解析する前に、作成者のような関連ツール パッケージをインポートする必要があります:

dom4j-1.6.1.jar

パッケージ

2.2.1 dom4j の API

//创建SAXReader,是dom4j包提供的解析器SAXReader reader=new SAXReader();//读取指定的文件Document doc=reader.read(new File(filename));

Document
  Document getRootElement()           用于获取根元素

Element
  Element element(String name)        获取元素下指定名称的子元素
  List<element> elements()            获取元素下所有的子元素
  String getName()                    获取元素名
  String getText()                    获取元素文本内容
  String elementText(String name)     获取子元素文本内容
  Attribute attribute(String)         获取元素的属性
  String attributeValue(String name)  获取元素的属性值

Attribute
  String getName()                    获取属性的名字
  String getValue()                   获取属性的值</element>

2.2 .2 XML ファイルの内容全体を出力します

<?xml  version="1.0" encoding="utf-8" ?><books>
  <book><name>三国演绎</name><author>罗贯中</author><price>58.8</price>
  </book>
  <book><name>水浒传</name><author>施耐庵</author><price>49.8</price>
  </book>
  <book><name>西游记</name><author>吴承恩</author><price>100.1</price><order>1</order>
  </book></books>

pricties ファイルの直下にあります .3 dom4j のアプリケーション XPath は XML を解析します
まず、以下を導入する必要があります。 dom4j に基づく対応する jar パッケージ (リーダーなど):

jaxen-1.1-beta-6.jar

2.3.1 XPath API
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 ParseXML {public static void main(String[] args) {//创建SAXReader对象SAXReader saxr=new SAXReader();
        Document  docu=null;try{//读取指定的文件,相对于项目路径docu=saxr.read(new File("pricties.xml"));//获得元素的文件的根节点Element e=docu.getRootElement();
            
            searchAllElement(e);
        }catch(Exception e){
            e.printStackTrace();
        }
    }    public static void searchAllElement(Element e){//获得当前元素下的所有子元素,并存储到集合中List<element> elements=e.elements();
        
        System.out.print(" atrs=e.attributes();//打印该标记下的所有属性for(Attribute att:atrs){
            System.out.print(" "+att.getName()+"=\""+att.getValue()+"\"");
        }
        System.out.println(">");        //如果集合的大小为0,表示该集合下没有子元素了if(elements.size()==0){
            System.out.println(e.getText());//打印文本信息System.out.println(""+e.getName()+">");//打印结束标记return;//退出当前层方法        }        //递归每一个子元素for(Element ele:elements){
            searchAllElement(ele);
        }
        System.out.println(""+e.getName()+">");//打印结束标记    }

}</element>

2.3.2 XPath的路径表达式

2.3.2.1 XPath的路径表达式规则

2.3.2.2 XPath的路径表达式应用案例

2.3.3 通配符

2.3.3.1 通配符规则

2.3.3.2 通配符应用案例

2.3.4 谓语

2.3.4.1 谓语规则

谓语是用来查找某个特定的节点或是包含某个指定的值的节点
谓语被嵌在方括号中

2.3.4.2 谓语应用案例

3 java写XML文件

3.1 将一个带有书籍信息的List集合解析为XML文件

package com.xdl.xml;public class Book {private String name;private String author;private String price;public Book() {super();
    }public Book(String name, String author, String price) {super();
        setName(name);
        setAuthor(author);
        setPrice(price);
    }/** * @return the name     */public String getName() {return name;
    }/** * @param name the name to set     */public void setName(String name) {this.name = name;
    }/** * @return the author     */public String getAuthor() {return author;
    }/** * @param author the author to set     */public void setAuthor(String author) {this.author = author;
    }/** * @return the price     */public String getPrice() {return price;
    }/** * @param price the price to set     */public void setPrice(String price) {this.price = price;
    }
}
Book.java
package com.xdl.xml;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.dom4j.Document;import org.dom4j.DocumentHelper;import org.dom4j.Element;import org.dom4j.io.XMLWriter;public class WriteXML {public static void main(String[] args) {//创建一个Book集合用于存储书籍信息List<book> list_books=new ArrayList<book>();//插入书籍信息for(int i=0;i</book></book>
WriteXML.java

 4 Schema和DTD的区别

  Schema是对XML文档结构的定义和描述,其主要的作用是用来约束XML文件,并验证XML文件有效性。DTD的作用是定义XML的合法构建模块,它使用一系列的合法元素来定义文档结构。它们之间的区别有下面几点:

1、Schema本身也是XML文档,DTD定义跟XML没有什么关系,Schema在理解和实际应用有很多的好处。

2、DTD文档的结构是“平铺型”的,如果定义复杂的XML文档,很难把握各元素之间的嵌套关系;Schema文档结构性强,各元素之间的嵌套关系非常直观。

3、DTD只能指定元素含有文本,不能定义元素文本的具体类型,如字符型、整型、日期型、自定义类型等。Schema在这方面比DTD强大。

4、Schema支持元素节点顺序的描述,DTD没有提供无序情况的描述,要定义无序必需穷举排列的所有情况。Schema可以利用xs:all来表示无序的情况。

5、对命名空间的支持。DTD无法利用XML的命名空间,Schema很好满足命名空间。并且,Schema还提供了include和import两种引用命名空间的方法。

5 参考文章

Schema和DTD的区别

以上がXML とは何ですか? XMLの説明例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
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

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を動的に生成および公開します。これらの手順を通じて、コンテンツを効果的に管理および共有できます。

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

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

mPDF

mPDF

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

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。