使用PHP显示所有在XML中匹配的项目

时间:2013-07-27 04:03:22

标签: php xml match

这是我的XML文件名:full.xml
a busy cat http://i43.tinypic.com/25k4duc.jpg


我需要你的帮助。我需要一个打开“ full.xml ”的PHP脚本 并且仅显示具有 .email

的节点的所有值

我想要的输出示例:
sales@company1.com
sales@company2.com
sales@company3.com

谢谢!我非常感谢你!

修改

$Connect = simplexml_load_file("full.xml");
return $Connect->table[0]->*.email;

1 个答案:

答案 0 :(得分:2)

您的XML设计不是很聪明。使用此xpath表达式,您可以选择名称末尾带有.email的所有节点:

$xml = simplexml_load_string($x); // assume XML in $x
$results = $xml->xpath("//*[substring(name(),string-length(name())-" . (strlen('.email') - 1) . ") = '.email']");

- > result是包含所选节点的数组。

BTW:如果你有可能改变XML的结构,AVOID在<company1.email>等节点名称中组合信息,但是这样做:

...
<companies>
    <company id="1">
        <email>info@company1.com</email>
        <tel>+498988123456</tel>
        <name>somename</name>
    </company>
    <company id="2">
        <email>info@company2.com</email>
        <tel>+498988123457</tel>
        <name>someothername</name>
    </company>
</companies>
....

阅读和解析会更容易。