【问题标题】:Read name and values of node using value of attribute in PHP XPATH使用 PHP XPATH 中的属性值读取节点的名称和值
【发布时间】:2017-09-11 13:15:52
【问题描述】:

我正在使用 PHP DOM XPATH。我的 XML 结构如下

<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:rank="http://www.w3.org/2001/XMLSchema">
    <rank:one year = "2015">99</<rank:one>
    <rank:two year = "2014">128</rank:two>
    <rank:three year = "2015">27</rank:three>
</root>

我想在哪里获取 2015 年节点的名称和值

预期输出为 rank:one -- 99 和 rank:three -- 27 我尝试将 xpath 查询编写为

$xpath->query('//root/[@year="2015"]');

在这种情况下,我没有得到应该是 xpath 表达式的内容

【问题讨论】:

    标签: php xml xpath


    【解决方案1】:

    XPath 表达式应该是

    $xpath->query('//root/*[@year="2015"]');
    

    然后您可以使用name()text() 分别获取其名称和值。

    【讨论】:

    • 谢谢。正是我想要的。
    • 请不要拒绝像stackoverflow.com/review/suggested-edits/17296854 这样的建议编辑。我们正在努力改进 StackOverflow,因此即使是小的好的修改也应该得到批准。否则你会在帖子上留下不受欢迎的噪音。要判断它是否可取,您可以问自己“我会批准 *add* 的建议吗?”或者,如果您真的想拒绝某人进行“太小”的编辑( ,同样,你不应该),然后使用“拒绝并编辑”并重新应用次要编辑以避免在帖子上留下噪音。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多