<?php
$str = <<<END
<?xml version="1.0" encoding="utf-8" ?>
<prons>
<pron type="GB"><hwd>aaa</hwd>
<pos>n</pos>
<id>p008-000170337 </id>
<filename>ld41meatball.wav </filename> </pron>
<pron type="GB"><hwd>bbb</hwd> <pos>adj </pos> <id>p008-000455551 </id> <filename>unfamiliar.wav </filename> </pron>
<pron type="GB"><hwd>test</hwd> <pos>adj </pos> <id>p008-000455551 </id> <filename>unfamiliar.wav </filename> </pron>
</prons>
END;//echo $str;
$xml = xml_parser_create("UTF-8");
xml_parse_into_struct($xml, $str, $vals, $index);
xml_parser_free($xml);foreach($index as $k=>$v){
if($k == "HWD"){
foreach($v as $v1){
$result[] = $vals[$v1]["value"];
}
}
}print_r($result);
?>
<?php
$test = '<prons>
<pron type="GB"> <hwd>aaa </hwd> <pos>n </pos> <id>p008-000170337 </id> <filename>ld41meatball.wav </filename> </pron>
<pron type="GB"> <hwd>bbb </hwd> <pos>adj </pos> <id>p008-000455551 </id> <filename>unfamiliar.wav </filename> </pron>
<pron type="GB"> <hwd>test </hwd> <pos>adj </pos> <id>p008-000455551 </id> <filename>unfamiliar.wav </filename> </pron>
</prons>';
$hwd_reg = '/<hwd>(.+)?<\/hwd>/';
preg_match_all($hwd_reg,$test,$matchall);
print_r($matchall[1]);
?>
结果就是这样的:
Array
(
[0] => aaa
[1] => bbb
[2] => test
)
$xml_file = '../test3.xml';
$xml = simplexml_load_file($xml_file);
foreach ($xml->pron as $child)
{
foreach ($child->hwd as $children)
{
echo $children."<br>";
}
}