タグの名前 -- 上記の最初のケースでは、これはタグ STORY であり、
その下は BYLINE です。 BYLINE_AUTHOR が必要です。 最初の BA が必要です。
最初のものは、2 次元配列の 2 番目の部分のインデックス [0] です。
署名者が *1 人* しかいない場合でも、それは配列であるため、
依然として [0] を使用する必要があります。 さて、二次元配列には
動的構造体、この場合はオブジェクトが格納されています。 したがって、
オブジェクトを逆参照する必要があるため、-> になります。 BYLINE_AUTHOR は必要なタグであり、
そのオブジェクト内の配列です。 この配列の理由は、タグ STORY、BYLINE に
複数の BYLINE_AUTHOR がある場合、配列内に
[0] と [1] が含まれることになるためです。 あなたの場合、それは1つだけです。
*** これは非常にわかりにくいですが、一度理解すると、この方法の威力
がより明らかになるでしょう。
変数の参照方法を理解するだけで、XML ファイル内の
情報の*すべて* にアクセスできます。 ***
すべての変数は次のようになります:
print $xml["STORY_BYLINE"][0]->BYLINE_AUTHOR[0];
重要なのは、
情報を提供する変数を取得する方法を理解することです。 これは、配列を保持するオブジェクトの配列の配列です。
属性を持つタグはすべて、「attributes」という名前の特別なオブジェクト
配列に格納され、次のように呼ばれます:
print $xml["STORY"][0 ]-> 属性[0]["TIMESTAMP"];
属性があるかどうかわからない場合は、上記の例に対して isset() または
is_array() を実行できます。 isset() の場合、for ループと
while(list($k,$v) = each($xml...)) を実行して値を取得できます。
オブジェクトの配列
|
|
$xml["STORY_BYLINE"][0]->BYLINE_AUTHOR[0];
^^^^
arrayの配列^
オブジェクトの配列
^
一般的に、これの値を取得するために:
<状態>
<州名>州名>
<郡>
<郡>
州>
必要なものを探します。たとえば「CITY」と入力し、1 レベル上の
COUNTY (COUNTYNAME は同じ「レベル」にあります) に移動します。最初の配列は次のとおりです。
$xml["STATE_COUNTY"] -- 一緒にプッシュされたすべてのタグは
"_" で区切られます。 それ以外の場合、タグはスペース、ダッシュ、CaSe などのとおりです。
次に、最初の COUNTY が必要ですが、2 つあります。そのため、次のようにします:
$xml[ "STATE_COUNTY"][0] -- 2 番目を取得するには、
[0] の代わりに [1] を使用します。 また、sizeof() を使用して for() ループを実行し、
サイズを把握することもできます。
それで、必要な州、郡が決まりました。最初のものです。 これは
オブジェクトであり、CITY が必要であることがわかります。 したがって、オブジェクトを逆参照します。 必要な配列の
名は、もちろん CITY です:
$xml["STATE_COUNTY"][0]->CITY[0] (最初の配列、2 番目の配列は次のようになります)
[1])。
それで終わりです。 基本的には、欲しいものを見つけてレベルを上げてください。
複雑な for ループを実行して、それらすべてを処理することもできます。
for($i=0;$i
for($j=0;$j
print $xml[ "STATE_COUNTY"][$i]->CITY[$j];
}
}
-----------
ふぅ。 傷つくのではなく、役立つことを願っています。
*/
/* 解析された情報の保存に使用 */
class xml_container {
function store($k,$v) {
$ this->{$k}[] = $v;
}
}
/* 情報を解析します */
class xml {
// いくつかの変数を初期化します
var $current_tag =配列();
var $xml_parser;
var $Version = 1.0;
var $tagtracker = array();