私は正規表現を使用してXML要素間のテキストをターゲットにしてきましたが、XMLツリーのほとんどの要素で正常に機能します。ただし、Webブラウザで生のXMLドキュメントを表示するときにクリック/展開できる要素は、正規表現の対象にはなりません。PHPでpreg_matchを使用すると、空の配列が取得されます。
今、私は作品を知っていますが、明確にするために、ここにあります:
$contents "random fetched xml doc";
$regex = '/<element>(.*?)<\/element>/';
preg_match_all($regex, $contents, $output);
print_r($output);
注意:この問題をグーグルで検索したところ、正規表現を使用してXMLを解析するべきではないという結果が多数見つかりました。私は一般的なXMLの解析方法を学ぶことに興味はなく、Webサイトからデータを取得する手法を学び、XMLページを含むWebサイトで練習しているだけです。これは、直感的な区切り文字(XMLタグ)を提供するためです。
私の質問は単純です:拡張可能なXML要素をターゲットにするように正規表現を変更するにはどうすればよいですか?
編集: 解決された問題質問は誤った前提に基づいていました。この問題はXMLとは何の関係もありませんが、正規表現が改行以外の要素間で一致したということです。式の最後に/sを追加すると、チャームのように機能します。御時間ありがとうございます!