PHP 访问 XML 同级标签的属性

标签 php xml xpath simplexml

我正在使用这样的 xml 文件;

<m>
  <n>
     <name id="1">test</name>
     <id>10</id>
  </n>
  <n>
    ......
  </n>
</m>

想要搜索 10,然后获取同级标签“name”的 id 值。

我找到了如下所示的10个,但是,不知道如何获取兄弟标签“name”的id属性值,有没有任何方法可以访问兄弟的属性?

$test=$xml->xpath("//n['10']/::*");

如何访问此 ID(“<name id="1">test</name>”)值?

谢谢

最佳答案

您可以从 id 元素中找到前面的同级 name 元素,如下所示:

//id[.='10']/preceding-sibling::name

或者,您可以找到子 id 与条件匹配的 n 元素,然后从该 n< 中返回 name 元素:

//n[id='10']/name

*) 如果您打算返回 id 属性而不是整个 name 元素,请在上述任一 XPath 的末尾添加 /@id .

关于PHP 访问 XML 同级标签的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39287443/

相关文章:

xml - XSL 值返回不匹配

php - Yii 2 : Unable to send log via mail

php从远程url而不是文件获取xml

java - 在 Java 中将 WBXML 转换为 XML

ios - NSDictionary长度:unrecognized selector sent to instance

xpath - 通过find_element_by_xpath返回<li> WebElement的列表

php - 使用来自同一行的 id 单击带有 XPath 的按钮

php - 使用 Ajax 和 PHP 的 Google 图表

用于取消引用函数结果的 PHP 语法

javascript - 如何通过下拉菜单查看多个表?