在XML文件中搜索-PHP
我的XML看起来像这样在XML文件中搜索-PHP,php,xml,Php,Xml,我的XML看起来像这样 <root lastUpdated="20180101120330" ttl="24"> <Parent1>...</Parent1> <Parent2> <sub parm1="google.com" parm2="email@email.com" parm3="5343243434" parm4="google" parm5="876787" parm6="" parm7="ACTIVE">...</s
<root lastUpdated="20180101120330" ttl="24">
<Parent1>...</Parent1>
<Parent2>
<sub parm1="google.com" parm2="email@email.com" parm3="5343243434" parm4="google" parm5="876787" parm6="" parm7="ACTIVE">...</sub>
<sub parm1="yahoo.com" parm2="email2@email.com" parm3="4434343" parm4="yahoo" parm5="232322" parm6="" parm7="ACTIVE">...</sub>
<sub parm1="facebook.com" parm2="email3@email.com" parm3="222334" parm4="facebook" parm5="12233" parm6="" parm7="ACTIVE">...</sub>
</Parent2>
</root>
...
...
...
...
我想寻找parm3,如果它匹配,它应该返回parm1。
XML存储在本地目录中。您可以对
中的
项使用xpath查询,如/root/Parent2/sub
或者,对于
元素中的
元素,例如/root/*[以(name(),'Parent')]开头]/sub
然后,您可以使用
$data=parm3==“4434343”){
echo$a[$i]->attributes()->parm1;
}
}
在询问之前,您试过什么吗?可能搜索“如何用PHP读取XML”或其他内容。使用xpath
//sub[@parm3=“4434343”]/@parm1
可能重复的
$data = <<<DATA
<root lastUpdated="20180101120330" ttl="24">
<Parent1></Parent1>
<Parent2>
<sub parm1="google.com" parm2="email@email.com" parm3="5343243434" parm4="google" parm5="876787" parm6="" parm7="ACTIVE">...</sub>
<sub parm1="yahoo.com" parm2="email2@email.com" parm3="4434343" parm4="yahoo" parm5="232322" parm6="" parm7="ACTIVE">...</sub>
<sub parm1="facebook.com" parm2="email3@email.com" parm3="222334" parm4="facebook" parm5="12233" parm6="" parm7="ACTIVE">...</sub>
</Parent2>
</root>
DATA;
$elm= new SimpleXMLElement($data);
$a = $elm->xpath('/root/Parent2/sub');
for ($i = 0; $i < count($a); $i++) {
if ((string)$a[$i]->attributes()->parm3 === "4434343") {
echo $a[$i]->attributes()->parm1;
}
}