0

私は現在、多くのデータ解析を行っており、単純な XML やその他いくつかの XML 用の PHP 関数をあちこちでいじっています。

しかし、主にデータの表示方法が原因で、それらの処理には常に何らかの問題があるようです。

私が見つけた最も信頼できる方法は、常に単純に preg_match_all と正規表現を使用して、処理のためにスクリプトにデータを取り込むことです。

誰もこれに問題があると思いますか? 既成の XML パーサーではなく、正規表現を使用することの短所は何ですか?

私の主な関心事は、リソースの速度とサーバーの使用率です。

4

2 に答える 2

1

DOMDocument と DOMXpath を使用している場合は、これらで問題が解決すると思います。

http://jp2.php.net/manual/en/class.domdocument.phpおよびhttp://jp2.php.net/manual/en/class.domxpath.phpを参照してください。

しかし、あなたがやろうとしていることの例を挙げていただけますか?

編集
ただし、質問に直接答えるには、正規表現は簡単に混乱します-特にxmlのような階層構造を処理します。正しく実行しても、xpath を使用するよりも遅くなる可能性があります。

編集2
追加するだけで、phpのxpathの実装であるDOMXpathはxpath 1.0のみをサポートします。要素またはその属性のいずれかの内容を評価するために正規表現を使用する必要がある場合は、xpath 2.0 をサポートするものが必要になります.... または、危険でエラーが発生しやすい正規表現を使用します。

于 2009-10-08T15:43:51.097 に答える
1

XML の構文解析は、オーバーヘッドの大きい重要な作業です。データ ストリームが正規表現で解析できるほど単純な場合は、それが最も効率的な解析方法になります。

リソースを最小限に抑えながら XML 構文解析を行いたい場合は、おそらく SAX パーサーが最適です。手作りの正規表現ほど効率的ではありませんが、それで十分かもしれません。

http://www.brainbell.com/tutorials/php/Parsing_XML_With_SAX.htm

DOM パーサーと単純な XML パーサーでは、ドキュメント全体を読み込む必要があります。次に、ドキュメントを検証し、それをノード構造に変換して、データを使用できるようにします。パーサーにとっては大変な作業のように聞こえますか? です。しかし、多くの目的にとって、それはまだ適切です。

私はほとんどの作業で XML をあきらめ、JSON を使用しています。

于 2009-10-08T15:44:48.020 に答える