使用PHP解析XML中的嵌套变量使用PHP解析XML中的嵌套变量

问题描述:

我一直在玩XML和PHP,我已经使用Google来获取我正在处理的需求,但仍然没有按照我想要的方式获取这些东西。使用PHP解析XML中的嵌套变量使用PHP解析XML中的嵌套变量

我得到一个带有嵌套变量的XML文件,我需要解析诸如user_id,name之类的变量并将其存储在一个数组中,以便我需要使用它们来更改另一个配置文件中的细节。

例如:如果用户登录,使用user_id,我需要从XML文件(其中存储各种用户的详细信息)解析特定用户的所有数据。

到目前为止,我只能解析数据并回显所有数据,但找不到存储解析信息的方法。

这是我的test.xml文件:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<document> 
    <user> 
     <user_id>0121</user_id> 
     <name>Tim</name> 
     <file>0121.file</file> 
    </user> 

    <user> 
     <user_id>0178</user_id> 
     <name>Henry</name> 
     <file>0178.file</file> 
    </user> 

    <user> 
     <user_id>0786</user_id> 
     <name>Martin</name> 
     <file>0786.file</file> 
    </user> 

    <user> 
     <user_id>1239</user_id> 
     <name>Jan</name> 
     <file>1239.file</file> 
    </user> 
</document> 

任何有价值的信息将是很大的帮助

感谢 Raaks

+0

@Gordon,感谢您的回复,但是我正在寻找一种方式来解析塔信息存储到一个数组或变量,这样我可以使用这些信息来更新另一个文件不一样的XML文件或其他XML文件。希望你去。 – 125369

使用SimpleXML

$xml = simplexml_load_file("test.xml"); 
$user = $xml->xpath("user[user_id = $my_user_id]"); 

$name = $user[0]->name; 
$file = $user[0]->file; 
+0

嗨Socha,我跟着你的提示,我得到这个错误“警告:SimpleXMLElement :: xpath()[simplexmlelement.xpath]:无效的表达式”任何想法,为什么这是弹出 – 125369

+0

是的,它应该是一个= =, =。另外,$ user在以后的调用中没有索引。我更新了我的答案,现在应该可以工作。 – socha23

+0

嗨Socha,非常感谢您的快速帮助。需要说的是,在过去的半个小时里,他们正在努力找出错误在哪里。任何方式感谢您更新您的代码。现在一切正常 – 125369