php - 使用 php 中的 xpath 属性从 xml 获取值

标签 php xml xpath simplexml

我想从此 获取 name="userID" 参数的值“23452345235”:

<?xml version="1.0" encoding="UTF-8"?>
    <callout>
        <parameter name="UserID">
            23452345235
        </parameter>

        <parameter name="AccountID">
            57674567567
        </parameter>

        <parameter name="NewUserID">
            54745674566
        </parameter>

     </callout>

我正在使用此代码:

$xml = simplexml_load_string($data);
$myDataObject = $xml->xpath('//parameter[@name="UserID"]');
var_dump($myDataObject);

我得到了这个:

array(1) {
[0] =>
    class SimpleXMLElement#174 (1) {
        public $@attributes =>
        array(1) {
          'name' =>
          string(6) "UserID"
        }
    }
}

我实际上想获取'23452345235'的值或者接收参数以获得这个值。

我做错了什么?

最佳答案

你可以(可选)将它放在一个循环下。像这样:

$myDataObject = $xml->xpath('//parameter[@name="UserID"]');
foreach($myDataObject as $element) {
    echo $element;
}

或者直接:

echo $myDataObject[0];

实际上非常简单,如您的 var_dump() 所示,它是一个数组,因此可以这样访问它。

关于php - 使用 php 中的 xpath 属性从 xml 获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25843308/

相关文章:

php - 从 XML 文件中去除所有标签

c# - 从节点列表中获取节点列表 c# .net

php - 如何使用字符串中字符的位置来匹配两个字符串

javascript - 如何将 php 数组转换为 Highchart JS 的 javascript 数组

javascript - 通过javascript将用户选择的页面控制值写入xml文件中并存储在客户端计算机中

xml - 删除 scala 中的前缀属性 (scala-xml)

PHP 5.3.10 与 PHP 5.5.3 语法错误意外 '['

php - 解析错误: Cannot modify user using php sdk

XSLT/XPath : how to use xsl:apply-templates on all but specific elements

php - 需要帮助从 Div 中删除空格