PHP のクラス - XML の操作(2)

WBOY
リリース: 2016-06-21 09:02:01
オリジナル
1061 人が閲覧しました

タグの名前 -- 上記の最初のケースでは、これはタグ 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;$jCITY);$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();



関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート