ID를 기반으로 XML 파일에서 속성 그룹을 가져 오려고합니다. 나는 주변을 둘러 보았고 작동하는 해결책을 찾지 못했습니다.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>
내가 무엇을 찾고 있어요 것은 비코의 값을 받아 수행하는 스크립트를 만들 수 있습니다에는, mt_rand (0, 비코가) (이미 코드의이 부분을 작성) 그 번호를 기반으로 노드를 가져옵니다.
예를 들어 숫자가 2 인 경우 XML 파일의 ID가 2 인 모든 속성을 가져오고 싶습니다. ID를 다른 속성의 부모로 설정해야한다고 생각하지만 나는 잘 모르겠다. 나에게있어서 나는이 사실을 알 수 없다. 나는 또한 내가 더 이상 투자하기 전에 이것이 가능한지 확인하고 싶다.
이 작업은 mySQL을 사용하여 매우 쉽게 수행 할 수 있지만 필자는 엄지 드라이브를 작동시킬 때 이식성을 위해 그렇게하지 않기로 결정했습니다. 어떤 도움이라도 대단히 감사하겠습니다. 당신이 SimpleXML을를 사용하는 경우
$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
}
이것이 성공했습니다! 고마워요! – Rudenate3