例
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 コマンドを使用できます。
DTD
代替)xmlファイル(person.xml)とscheamファイル(person.xsd)のファイルがあり、その内容は以下の通りであるとします
<?xml version="1.0"?> <person> <name>ball</name> <age>30</age> <sex>male</sex> </person>
#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 は検証します
今度は、このファイルの年齢フィールドと性別が 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) {}、素晴らしいですね。
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 'age': 'not age' is not a valid value of the atomic type 'xs:integer'. person.xml:5: element sex: Schemas validity error : Element 'sex': [facet 'enumeration'] The value 'test' is not an element of the set {'male', 'female'}. person.xml:5: element sex: Schemas validity error : Element 'sex': 'test' 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 -schema po.xsd po.xml エラー メッセージがない場合は、検証が成功したことを意味します。
以上がxmllint コマンドを使用して XML を処理するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。