検索
ホームページバックエンド開発XML/RSS チュートリアルxmllint コマンドを使用して XML を処理する

curl http://www.php.cn /ip/?q=8.8.8.8 2>/dev/null --html --xpath "//ul[@id='csstb' ]" - 2>/dev/null | sed -e 's/]*>//g'
上記の例では、主に 123cha の IP アドレスの所有権をクエリし、その後pass 結果(ul#csstb)を抽出し、テキスト部分の内容のみを取得します。上記のスクリプトステートメントを実行した結果は次のとおりです:


[クエリ]:8.8.8.8
このサイトのメインデータ:
米国
このサイトの二次データ: Google Public DNS 提供元:hypo
US Google's無料の Google Public DNS 提供: zwstar 参考データ 1: 米国
参考データ 2: 米国
他の主なパラメータの使用法を例を挙げて見てみましょう。

1. --format

このパラメータは、XML を読み取れるようにフォーマットするために使用されます。
xml (人) があるとします。次の操作を実行すると、出力はより読みやすい XML 形式になります:

#xmllint --format person.xml
    <?xml version="1.0"?>
    <person>
      <name>ball</name>
      <age>30</age>
      <sex>male</sex>
    </person>

2。 --noblanks

は --format の逆です。送信を節約するために時々使用されます。この場合、 --noblanks コマンドを使用できます。

xmlの内容(person.

DTD

代替)

xmlファイル(person.xml)とscheamファイル(person.xsd)のファイルがあり、その内容は以下の通りであるとします

person.xml

<?xml version="1.0"?>
    <person>
      <name>ball</name>
      <age>30</age>
      <sex>male</sex>
    </person>

person.xsd

#xmllint --noblanks person.xml
    <?xml version="1.0"?>
    <person><name>ball</name><age>30</age><sex>male</sex></person>

次のコマンドを実行すると、結果は次のようになります:

<?xml version="1.0"?>
    <person>
      <name>ball</name>
      <age>30</age>
      <sex>male</sex>
    </person>
person.xml は検証します 注: デフォルトでは、検証されたファイルの内容は検証後に出力されます。 --noout オプションを使用できます。この出力を削除して、最終的な検証結果のみを取得できるようにします。

#xmllint --noout --schema person.xsd person.xml

person.xml は検証します
今度は、このファイルの年齢フィールドと性別が xsd 定義に準拠しないように person.xml を変更します。

<?xml version="1.0"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="name" type="xs:string"/>
      <xs:element name="age" type="xs:integer"/>
      <xs:element name="sex">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="male"/>
            <xs:enumeration value="female"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="person">
        <xs:complexType>
          <xs:all>
            <xs:element ref="name"/>
            <xs:element ref="age"/>
            <xs:element ref="sex"/>
          </xs:all>
        </xs:complexType>
      </xs:element>
    </xs:schema>

xmllint がエラーを正常に報告したことがわかります。

4. --schema の出力について

出力について話す前に、次のシナリオを見てみましょう。php を通じて xmllint を実行して戻り結果を取得したい場合、コードは通常、この valid.php のようになります。

#xmllint --schema person.xsd person.xml
    <?xml version="1.0"?>
    <person>
      <name>ball</name>
      <age>30</age>
      <sex>male</sex>
    </person>

エラーは上記の person.xml に保存されます。
このコードを実行すると、得られる出力はエラーではないことがわかりますが、
array
(0) {}、素晴らしいですね。

なぜこれが起こっているのですか?


xmllint --schema により、検証中にエラーが発生した場合、エラー メッセージは標準出力 (stdout) には表示されず、標準エラー (stderr) に表示されます。

exec の出力パラメータは、標準出力 (stdout) で表示される内容のみを取得できます。

そのため、エラー メッセージを取得するには、標準エラーを標準出力にリダイレクトし、それに応じてコードを変更する必要があります。

$command = "xmllint --noout --schema person.xsd person.xml 2> $1";
valid.php を再度実行すると、エラー メッセージが正常に表示されます。

まず、次の内容を含む po.xml という名前の XML ドキュメントを作成します:

#xmllint --noout --schema person.xsd person.xml
person.xml:4: element age: Schemas validity error : Element &#39;age&#39;: &#39;not age&#39; is not a valid value of the atomic type &#39;xs:integer&#39;.
person.xml:5: element sex: Schemas validity error : Element &#39;sex&#39;: [facet &#39;enumeration&#39;] The value &#39;test&#39; is not an element of the set {&#39;male&#39;, &#39;female&#39;}.
person.xml:5: element sex: Schemas validity error : Element &#39;sex&#39;: &#39;test&#39; is not a valid value of the local atomic type.
person.xml fails to validate

次に、次の内容を含む po.xsd という名前の po.xml のスキーマ ファイルを作成します。

<?php
    $command = "xmllint --noout --schema person.xsd person.xml";
    exec($command, $output, $retval);
    //出错时返回值不为0
    if ($retval != 0){
            var_dump($output);
    }
    else{
        echo "yeah!";
    }

xmllint を使用して po.xml ファイルを検証します:


$ xmllint -schema po.xsd po.xml エラー メッセージがない場合は、検証が成功したことを意味します。

以上がxmllint コマンドを使用して XML を処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
RSSフィード:XMLの役割と目的の調査RSSフィード:XMLの役割と目的の調査Apr 28, 2025 am 12:06 AM

RSSFeedにおけるXMLの役割は、データを構成し、標準化し、スケーラビリティを提供することです。 1.xmlはRSSFeedデータを構造化するため、解析と処理が簡単になります。 2.xmlは、RSSFeedの形式を定義する標準化された方法を提供します。 3.XMLスケーラビリティにより、RSSFeedは必要に応じて新しいタグと属性を追加できます。

スケーリングXML/RSS処理:パフォーマンス最適化手法スケーリングXML/RSS処理:パフォーマンス最適化手法Apr 27, 2025 am 12:28 AM

XMLおよびRSSデータを処理する場合、次の手順でパフォーマンスを最適化できます。1)LXMLなどの効率的なパーサーを使用して、解析速度を改善します。 2)SAXパーサーを使用して、メモリの使用量を削減します。 3)Xpath式を使用して、データ抽出効率を改善します。 4)処理速度を改善するために、マルチプロセスの並列処理を実装します。

RSSドキュメント形式:RSS 2.0以降の探索RSSドキュメント形式:RSS 2.0以降の探索Apr 26, 2025 am 12:22 AM

RSS2.0は、コンテンツパブリッシャーが構造化された方法でコンテンツを配布できるようにするオープン標準です。タイトル、リンク、説明、リリース日などの豊富なメタデータが含まれているため、サブスクライバーは迅速にコンテンツを参照してアクセスできます。 RSS2.0の利点は、そのシンプルさとスケーラビリティです。たとえば、カスタム要素を許可します。つまり、開発者は著者、カテゴリなどのニーズに基づいて追加情報を追加できます。

RSSの理解:XMLの視点RSSの理解:XMLの視点Apr 25, 2025 am 12:14 AM

RSSは、頻繁に更新されるコンテンツを公開するために使用されるXMLベースの形式です。 1。RSSFeedは、タイトル、リンク、説明などを含むXML構造を通じて情報を整理します。2。rssfeedの作成には、言語やリリース日などのメタデータを追加するXML構造での書き込みが必要です。 3.高度な使用法には、マルチメディアファイルと分類された情報を含めることができます。 4.デバッグ中にXML検証ツールを使用して、必要な要素が存在し、正しくエンコードされていることを確認します。 5. RSSFeedの最適化は、構造をシンプルに保つことで、ページング、キャッシュ、および保持することで実現できます。この知識を理解して適用することにより、コンテンツを効果的に管理および配布できます。

XMLのRSS:タグ、属性、および構造のデコードXMLのRSS:タグ、属性、および構造のデコードApr 24, 2025 am 12:09 AM

RSSは、コンテンツを公開および購読するために使用されるXMLベースの形式です。 RSSファイルのXML構造には、ルート要素、要素、および複数の要素が含まれ、それぞれがコンテンツエントリを表します。 XMLパーサーを介してRSSファイルを読み取り、解析すると、ユーザーは最新のコンテンツを購読して取得できます。

RSSにおけるXMLの利点:技術的なディープダイビングRSSにおけるXMLの利点:技術的なディープダイビングApr 23, 2025 am 12:02 AM

XMLには、RSSの構造化データ、スケーラビリティ、クロスプラットフォームの互換性、解析検証の利点があります。 1)構造化されたデータにより、コンテンツの一貫性と信頼性が保証されます。 2)スケーラビリティにより、コンテンツのニーズに合わせてカスタムタグを追加できます。 3)クロスプラットフォームの互換性により、さまざまなデバイスでシームレスに動作します。 4)分析および検証ツールは、フィードの品質と完全性を確保します。

XMLのRSS:コンテンツシンジケーションのコアを発表しますXMLのRSS:コンテンツシンジケーションのコアを発表しますApr 22, 2025 am 12:08 AM

XMLでのRSSの実装は、構造化されたXML形式を使用してコンテンツを整理することです。 1)RSSは、チャネル情報やプロジェクトリストなどの要素を含むデータ交換形式としてXMLを使用します。 2)RSSファイルを生成する場合、コンテンツは仕様に従って整理し、サブスクリプションのためにサーバーに公開する必要があります。 3)RSSファイルは、読者またはプラグインを介してサブスクライブして、コンテンツを自動的に更新できます。

基本を超えて:高度なRSSドキュメント機能基本を超えて:高度なRSSドキュメント機能Apr 21, 2025 am 12:03 AM

RSSの高度な機能には、コンテンツネームスペース、拡張モジュール、条件付きサブスクリプションが含まれます。 1)コンテンツネームスペースはRSS機能を拡張します。2)dublincoreやiTunesなどの拡張モジュールを拡張してメタデータを追加します。これらの関数は、情報収集の効率を改善するために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衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

DVWA

DVWA

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

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

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

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

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