我正在尝试根据 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
}