-1

这是我的 XML 文件,名为:full.xml
一只忙碌的猫


我需要你的帮助。我需要一个打开“ full.xml ”的 PHP 脚本,并且只显示具有.email的节点的所有值

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

谢谢!我会非常感谢你!

编辑

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

1 回答 1

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']");

--> 结果是一个包含选定节点的数组。

顺便说一句:如果您有机会更改 XML 的结构,请避免在节点名称中组合信息,例如<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>
....

它会更容易阅读和解析。

于 2013-07-27T08:46:52.087 回答