正規表現を使用した XML タグへの属性の追加
XML ドキュメントは、正規表現を使用して適切に解析できない構造化された整形式のデータです。 XML データを効果的に変更するには、XML 固有のツールとライブラリを活用することが不可欠です。
XML 操作には正規表現を避ける
XML ドキュメントの操作に正規表現を使用することは、強くお勧めしません。 。 XML は正規言語ではなく、その複雑な構造をナビゲートするには正規表現パターンだけでは不十分です。
XML 拡張機能を使用する
代わりに、次の XML 拡張機能を使用することをお勧めします。 XML ドキュメントを変更するための PHP。次の例を考えてみましょう。
<code class="php">$xml = new SimpleXml(file_get_contents($xmlFile)); function process_recursive($xmlNode) { $xmlNode->addAttribute('attr', 'myAttr'); foreach ($xmlNode->children() as $childNode) { process_recursive($childNode); } } process_recursive($xml); echo $xml->asXML();</code>
このコードは、SimpleXml クラスを使用して XML ドキュメントを読み込みます。次に、 process_recursive 関数は XML ツリーを走査し、必要な属性を各ノードに追加します。最後に、変更された XML は asXML を使用して出力されます。
正規表現の制限
正規表現は、次のような複雑な XML 構造を処理できません。
<code class="xml"><?xml version="1.0" encoding='UTF-8'?> <html> <head> <!-- <meta> ... </meta> --> <script>//<![CDATA[ function load() {document.write('<tt>Test</tt>');} //]]></script> <title><![CDATA[Fancy <<SiteName>> [with Breadcrumbs] > in > title]]></title> </head> <body onload="load()"> <input type="submit" value="multiline button text" /> </body> </html></code>
正規表現パターンはこれらの要素を正しく処理できないため、無効な XML が生成されます。
以上がXML ドキュメントの操作に正規表現を使用するのは効果的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。