SimpleXML の名前空間: コロンを使用したタグと属性の処理
XML ドキュメントでは、名前にコロンが含まれるタグと属性は、名前空間のメンバーシップを示します。名前空間。さまざまな形式や標準の要素を区別するのに役立ちます。 SimpleXML は、名前空間を処理するための 2 つのアプローチを提供します。
1.子メソッドと属性メソッドの使用
->children(): このメソッドは、特定の名前空間内の子要素をフィルタリングしてアクセスします。このメソッドを繰り返し呼び出すことで、名前空間を切り替えることができます。
->attributes(): ->children() に似ていますが、特定の名前空間内の属性を取得します。
例:
<document xmlns="http://example.com" xmlns:ns2="https://namespaces.example.org/two" xmlns:seq="urn:example:sequences"> <list type="short"> <ns2:item seq:position="1">A thing</ns2:item> <ns2:item seq:position="2">Another thing</ns2:item> </list> </document>
XML スニペット名前空間
要素と属性にアクセスするための単純な XML コード:
define('XMLNS_EG1', 'http://example.com'); define('XMLNS_EG2', 'https://namespaces.example.org/two'); define('XMLNS_SEQ', 'urn:example:sequences'); $sx = simplexml_load_string($xml); foreach ($sx->children(XMLNS_EG1)->list->children(XMLNS_EG2)->item as $item) { echo 'Position: ' . $item->attributes(XMLNS_SEQ)->position . "\n"; echo 'Item: ' . (string)$item . "\n"; }
2.ネームスペース パラメータの使用
simplexml_load_string、simplexml_load_file、または新しい SimpleXMLElement の $namespace_or_prefix パラメータを使用して、XML データを解析するときにネームスペースを指定できます。このパラメータは、名前空間 URI またはローカル プレフィックスのいずれかです。
たとえば、ルート要素がデフォルトの名前空間を使用する場合:
<document xmlns="http://example.com"> <list type="short"> <item>A thing</item> <item>Another thing</item> </list> </document>
デフォルトの名前空間を使用した XML スニペット
単純な XML コード:
$sx = simplexml_load_string($xml, null, 0, XMLNS_EG1); foreach ($sx->list->item as $item) { echo 'Position: Not Available' . "\n"; echo 'Item: ' . (string)$item . "\n"; }
省略記号表記法 (非推奨)
ショートカットとして、名前空間のローカル プレフィックスを ->children() および ->attributes() メソッドの 2 番目のパラメーターとして使用できます。ただし、接頭辞が異なる可能性があるため、このアプローチは推奨されません。
結論
SimpleXML は、名前空間を処理するための強力なメソッドを提供し、名前空間に関係なく XML ドキュメントをシームレスに操作できるようにします。名前空間の使用状況。名前空間を理解することは、複雑な XML ドキュメントのデータを効果的に解析してアクセスするために重要です。
以上がSimpleXML は XML ドキュメント内の名前空間をどのように効果的に処理できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。