PHP SimpleXML抓取属性
我使用SimpleXML并希望获得每个不同的PHP SimpleXML抓取属性,php,simplexml,Php,Simplexml,我使用SimpleXML并希望获得每个不同的learner及其子rater属性,如何将其解析为一个单独的属性,如: Learner: John Rater_1_name: John Rater_1_email: john@domain.com Rater_1_group: Self Rater_2_name: Jane Rater_2_email: jane@domain.com Rater_2_group: Manager Rater_3_name: Nathan Rater_3_ema
learner
及其子rater
属性,如何将其解析为一个单独的属性,如:
Learner: John
Rater_1_name: John
Rater_1_email: john@domain.com
Rater_1_group: Self
Rater_2_name: Jane
Rater_2_email: jane@domain.com
Rater_2_group: Manager
Rater_3_name: Nathan
Rater_3_email: nathan@domain.com
Rater_3_group: Peers
// and so on...
要分析的代码:
$xml = '
<users>
<learner name="John">
<rater name="John" email="john@domain.com" group="Self"></rater>
<rater name="Jane" email="jane@domain.com" group="Manager"></rater>
<rater name="Nathan" email="nathan@domain.com" group="Peers"></rater>
</learner>
<learner name="Jane">
<rater name="Jane" email="jane@domain.com" group="Self"></rater>
<rater name="John" email="john@domain.com" group="Peers"></rater>
<rater name="Nathan" email="nathan@domain.com" group="Others"></rater>
</learner>
</users>
';
$sxe = new SimpleXMLElement($xml);
echo $sxe->asXML();
$xml='1!'
';
$sxe=新的simplexmlement($xml);
echo$sxe->asXML();
谢谢。在实现接口时,您可以访问foreach()循环中的元素。因此,应该从以下几方面着手:-
$xml = '
<users>
<learner name="John">
<rater name="John" email="john@domain.com" group="Self"></rater>
<rater name="Jane" email="jane@domain.com" group="Manager"></rater>
<rater name="Nathan" email="nathan@domain.com" group="Peers"></rater>
</learner>
<learner name="Jane">
<rater name="Jane" email="jane@domain.com" group="Self"></rater>
<rater name="John" email="john@domain.com" group="Peers"></rater>
<rater name="Nathan" email="nathan@domain.com" group="Others"></rater>
</learner>
</users>
';
$sxe = simplexml_load_string($xml);
foreach($sxe as $learner){
$attr = $learner->attributes();
$name = $attr['name'];
echo "Learner $name <br/>Rated by:-<br/>\n";
foreach($learner->rater as $rater){
foreach($rater->attributes() as $key => $value){
echo " - $key = $value <br/>\n";
}
}
}