我有这个xml文件:
<RecNo_1>
<Field Name="erfdat">19.11.1999</Field>
<Field Name="erfuser">user1</Field>
<Field Name="l_dat">18.12.2014</Field>
<Field Name="l_user">deluser1</Field>
</RecNo_1>
<RecNo_2>
<Field Name="erfdat">22.11.1999</Field>
<Field Name="erfuser">user2</Field>
<Field Name="l_dat">18.12.2015</Field>
<Field Name="l_user">deluser2</Field>
</RecNo_2>
我试图得到这样的字段:
$xml = simplexml_load_file($xmlFile);
foreach($xml->children() as $ob) {
var_dump($ob->Name["erfdat"]);
}
在我看来,这应输出RecNo_1“19.11.1999”,以及RecNo_2“22.11.1999”。但它什么都不输出......我怎样才能简单地得到这些值?
答案 0 :(得分:1)
$xml = '<root>
<RecNo_1>
<Field Name="erfdat">19.11.1999</Field>
<Field Name="erfuser">user1</Field>
<Field Name="l_dat">18.12.2014</Field>
<Field Name="l_user">deluser1</Field>
</RecNo_1>
<RecNo_2>
<Field Name="erfdat">22.11.1999</Field>
<Field Name="erfuser">user2</Field>
<Field Name="l_dat">18.12.2015</Field>
<Field Name="l_user">deluser2</Field>
</RecNo_2>
</root>';
$xml = simplexml_load_string($xml);
$result = $xml->xpath('RecNo_1/Field');
while(list(,$node) = each($result)) {
if("erfdat"==(string)$node['Name']){
print $node;#shows once 19.11.1999
}
}
点数:
RecNo_1
,在良好的XML中,它们应该只是RecNo
这样的节点(没有数字)RecNo_2
的值,则必须更改xpath
示例中所有块的简短版本:
$xml = simplexml_load_string($xml);
for($i=1;$i<=2;$i++){
$result = $xml->xpath("RecNo_{$i}/Field[@Name='erfdat']");
print (string)$result[0];
}
祝你好运。