......好吧,实际上我有一个看起来像这样的对象:
object(AleParserXMLElement)#39 (4) {
["name:private"]=>
string(6) "rowset"
["data:private"]=>
object(SimpleXMLElement)#42 (2) {
["@attributes"]=>
array(3) {
["name"]=>
string(6) "skills"
["key"]=>
string(6) "typeID"
["columns"]=>
string(36) "typeID,skillpoints,level,unpublished"
}
["row"]=>
array(185) {
[0]=>
object(SimpleXMLElement)#70 (1) {
["@attributes"]=>
array(3) {
["typeID"]=>
string(4) "3377"
["skillpoints"]=>
string(6) "256000"
["level"]=>
string(1) "5"
}
}
[1]=>
object(SimpleXMLElement)#23 (1) {
["@attributes"]=>
array(3) {
["typeID"]=>
string(5) "20342"
["skillpoints"]=>
string(1) "0"
["level"]=>
string(1) "0"
}
}
[2]=>
object(SimpleXMLElement)#9 (1) {
["@attributes"]=>
array(3) {
["typeID"]=>
string(5) "12096"
["skillpoints"]=>
string(1) "0"
["level"]=>
string(1) "0"
}
}
//etc.
}
}
["children:private"]=>
NULL
["rows:private"]=>
NULL
}
我有一个XML文件,你可以在这里看到:
我想从第一个对象中显示这些技能,但是将该typeID
值替换为该xml文件中的typeName
。
正如你所想,我根本不知道怎么做:)请帮助!
答案 0 :(得分:3)
您可以使用DOMDocuent和DOMXpath来获取名称。像//row[@typeID="ID HERE"]/@typeName
这样的XPath表达式将执行:
$d = new DOMDocument;
$d->load(...);
$xp = new DOMXpath($d);
$name = $xp->query('//row[@typeID="ID HERE"]/@typeName');
echo $name->item(0)->value;
关于如何进行替换,请参阅您正在使用的XML解析器的文档(我看到一个包含SimpleXMLElement的AleParser,但不知道那是什么)。