ID に基づいて XML ファイルから属性のグループを取得しようとしています。私は周りを見回しましたが、うまくいく解決策を見つけていません。
ここに私のXMLがあります:
<data>
<vico>2</vico>
<vis>
<vi>
<id>1</id>
<name>Vill1</name>
<att>2</att>
<hp>100</hp>
<xp>10</xp>
</vi>
<vi>
<id>2</id>
<name>Vill2</name>
<att>3</att>
<hp>120</hp>
<xp>12</xp>
</vi>
</vis>
</data>
私がしようとしているのは、vico の値を取得して mt_rand(0,vico) を実行するスクリプトを作成することです (コードのこの部分は既に作成されています)。表示される番号に基づいて、そのノードをプルします。
たとえば、番号が 2 の場合、xml ファイルの ID が 2 であるすべての属性を取得したいと考えています。ID を他の属性の親にする必要があると考えていますが、よくわかりません。 . 私の人生では、これを理解することはできません。また、時間を投資する前に、これが可能であることを確認したいと思います。
これは mySQL で非常に簡単に実行できることはわかっていますが、サム ドライブで作業しているため、移植性のためにそのようにしないことにしました。どんな助けでも大歓迎です。
ID に基づいてプルするための作業コード:
$xml = simplexml_load_file("vi.xml")
or die("Error: Cannot create object");
$vc = $xml->vico;
$select = mt_rand()&$vc;
if ($select == 0) {
$select = $select + 1;
}
$result = $xml->xpath("/data/vis/vi/id[.='".$select."']/parent::*");
if ($result) {
$node = $result[0];
$name = $node->name;
$att = $node->att;
$hp = $node->hp;
$xp = $node->xp ;
} else {
// nothing found for this id
}