私はPHP 5.3+、特にsimplexml_load_string()を使用しています。私は幸運で数時間のソリューションを探してみましたので、どんな助けも大歓迎です。XPathを使用してXMLからタグ名を取得
特定のレベルでXMLファイルに存在するすべてのタグ名を識別する体系的な方法が必要です。
例XML:
<?xml version="1.0"?>
<properties>
<property>
<ID>243</ID>
<area>5,000</area>
<bathrooms>5</bathrooms>
<bedrooms>4</bedrooms>
<images>
<image>http://urltoimage.com/image1.jpg</image>
<image>http://urltoimage.com/image2.jpg</image>
</image>
</property>
<property>
<ID>332</ID>
<garage>2</garage>
<bathrooms>2</bathrooms>
<images>
<image>http://urltoimage.com/image5.jpg</image>
<image>http://urltoimage.com/image1.jpg</image>
</image>
</property>
<properties>
私はの配列を取得できるようにする必要があります。
- ID
- エリア
- バスルーム
- 寝室
- ガレージ
最初の 'property'要素には「ガレージ」がありません。したがって、XML全体のすべての子要素が集約されます。私は、 'property'要素の下に存在するすべてのタグ名を識別できる必要があり、理想的には子要素を持つ要素を除外する必要があります。子供がいる要素(この例では「画像」)が出てくるのを回避することはできますが、XPathにもその部分を処理させてもらえます。
異なるタグ変数を持つプロパティデータの複数のXMLフィードを集約しています。インポートする前に、そのデータを渡す前にXMLで使用されているすべての異なるタグ名のアイデアが必要ですプログラムの残りの部分に渡します。
したがって、構築できるXPathクエリはありますか?パフォーマンスが要因であり、私はPHP関数の最適な設定が何であるか分からないので、提案を探しています。
どちらのソリューションは、働いていた - のおかげでみんなを。私は、どれが速いかを見るためにベンチマーキングを行いました。彼らは非常に近いです。小さなXMLファイルでは、Philの方法は高速でした(.008対0.010秒)。より大きなXMLファイルでは、それらは事実上同一でした。 – Andy