循环通过 SimpleXMLElement 来访问属性

2023-12-11

我正在尝试处理使用 SimpleXML 检索的数据,但遇到了很大的困难。我在这里阅读了很多关于这个主题的帖子,它们看起来都像我正在做的事情,但我的不起作用。这是我所得到的:

<ROOT>
    <ROWS COMP_ID="165462">
    <ROWS COMP_ID="165463">
</ROOT>

My code:

$xml = simplexml_load_file('10.xml');
foreach( $xml->ROWS as $comp_row ) {
    $id = $comp_row->COMP_ID;
}

当我在调试器中单步执行此操作时,我可以看到 $id 没有设置为 COMP_ID 的字符串值,而是变成了包含 CLASSNAME 对象的 SimpleXMLElement 本身。我尝试了许多解决此属性的变体,但都不起作用,包括 $comp_row->attributes()->COMP_ID 等。

我缺少什么?


SimpleXML 是一个类似数组的对象。备忘单:

  • Unprefixed child elements as numeric-index or traversable
    • 不包括前缀元素(NOTE,我真的是说prefixed, not 空命名空间! SimpleXMLElement命名空间的处理很奇怪,而且可以说是损坏的。)
    • 第一个孩子:$sxe[0]
    • new SimpleXMLElement具有匹配元素的子集:$sxe->ROWS, $sxe->{'ROWS'}
    • 迭代子项:foreach ($sxe as $e), $sxe->children()
    • 文字内容:(string) $sxe. SimpleXMLElement总是返回另一个SimpleXMLElement,所以如果你需要一个字符串明确地投射它!
  • Prefixed child elements:
    • $sxe->children('http://example.org')返回一个新的SimpleXMLElement有元素 在匹配的命名空间中,命名空间被剥离所以你可以像上一节一样使用它。
  • Attributes in null namespace as key-index:
    • 特定属性:`$sxe['属性名称']
    • 所有属性:$sxe->attributes()
    • $sxe->attributes()返回一个特殊的SimpleXMLElement显示属性为both子元素and属性,因此以下两项都有效:
    • $sxe->attributes()->COMP_ID
    • $a = $sxe->attributes(); $a['COMP_ID'];
    • 属性值:强制转换为字符串(string) $sxe['attr-name']
  • Attributes in other namespaces:
    • 所有属性:$sxe->attributes('http://example.org')
    • 具体属性:$sxe_attrs = $sxe->attributes('http://example.org'); $sxe_attrs['attr-name-without-prefix']

你想要的是:

$xml = '<ROOT><ROWS COMP_ID="165462"/><ROWS COMP_ID="165463"/></ROOT>';

$sxe = simplexml_load_string($xml);

foreach($sxe->ROWS as $row) {
    $id = (string) $row['COMP_ID'];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

循环通过 SimpleXMLElement 来访问属性 的相关文章

  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • 正则表达式上的换行符

    我试图替换两个标签之间的所有内容 但我无法构建正确的表达式 这就是我所做的
  • Ajax 没有将我重定向到下一页

    我正在尝试将单击的图像的 ID 传递到下一页 当我开发代码时 它没有将我重定向到下一页 当我单击 F12 并检查网络中的 POST 时 它显示变量已正确传递到下一页 如附图所示 但它没有将我重定向到下一页 所以现在我知道变量在下一页中正确传
  • 将维基百科中的表格加载到 R 中

    我正在尝试从以下 URL 将最高法院法官表加载到 R 中 https en wikipedia org wiki List of Justices of the Supreme Court of the United States http
  • 如何更换HXT中的节点?

    给定一个示例 xml 文件
  • get url 重定向时 File_get_contents() 不起作用

    我正在使用的功能是 function http post url data data url http build query data data len strlen data url date default timezone set
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • PHP 无法加载动态库“php_pdo_oci.dll”

    我在 Windows 8 上运行 Apache 2 4 7 和 PHP 5 5 9 我安装了 PHPUnit 并开始弹出此警告图像 警告 是的 我在 php ini 中启用了扩展加载以及 extension dir 以更正文件夹 并且该文件
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 通过 URL 指定控制器类与为每个控制器编写一个脚本相比,有何优缺点?

    今年夏天我安装了两个不同的 PHP 系统 每个都使用两种不同的方法 方法 1 每个任务一个 PHP 文件 该方法需要一个PHP为每个主要任务创建文件 例如 我的上传脚本可以通过http www domain com upload php O
  • UML 的 XMI 有 XSD 吗?

    是否有 UML XMI 文件的 XSD 标头仅包含名称空间引用
  • 如何在多次尝试后延迟登录尝试 (PHP)

    我正在开发一个用 PHP 构建的相当大的网站 该网站可能会有很多用户 我正在寻找一种方法来保护登录屏幕免受自动尝试的影响 我已经在注册表中添加了验证码检查 但还想进一步强化网站 据我所知 StackOverflow 上也有类似的问题 而且我
  • WordPress 包含 SVG 文件错误

    我使用 PHP 和 WordPress 在本地主机上 我可以毫无问题地包含 SVG 文件 但在实时服务器上 我尝试包含一个 SVG 文件以便能够使用 CSS 对其进行样式设置 我收到此错误消息 Parse error syntax erro
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • 如何通过php获取网页的Open Graph协议?

    PHP 有一个简单的命令来获取网页的元标记 get meta tags 但这仅适用于具有名称属性的元标记 然而 开放图谱协议如今变得越来越流行 从网页获取 opg 值的最简单方法是什么 例如 我看到的基本方法是通过 cURL 获取页面并使用
  • 如何通过ssh检查ubuntu服务器上是否存在php和apache

    如何通过ssh检查Ubuntu服务器上apache是 否安装了php和mysql 另外如果安装的话在哪个目录 如果安装了其他软件包 例如 lighttpd 那么它在哪里 确定程序是否已安装的另一种方法是使用which命令 它将显示您正在搜索
  • 如何删除文件

    我们有一个脚本 scripts ourscript php和一个文件 media movie1 flv 当我们运行时 我们如何删除这个文件ourscript php Using unlink http php net manual en f
  • 使用 crypt() 加密

    我目前正在做一个非常安全的登录系统 但我是 crypt 函数的新手 需要一些快速帮助 我在注册过程中使用 crypt 加密密码字符串并将其保存到数据库中 但是 我如何在登录过程中解密密钥 或者我应该怎么做 或者是否可以对提交的密码字符串进行

随机推荐

  • 如何添加 NSSpeechSynthesizer 类参考?

    我如何添加 NSSpeechSynthesizer 类参考 我认为它是在 系统 库 框架 AppKit framework 但是 当我单击 添加现有框架 时 框架窗口中没有这样的框架名称 任何人都可以帮我做到这一点吗 VSSpeechSyn
  • 在已经跟踪大量文件的现有存储库上应用 .gitignore

    我的存储库中有一个现有的 Visual Studio 项目 我最近在我的项目下添加了一个 gitignore 文件 我假设它告诉 Git 忽略该文件中列出的文件 我的问题是 所有这些文件都已经被跟踪 据我所知 在将规则添加到该文件以忽略它之
  • Java中可以使用Semaphore实现阻塞队列吗?

    我想知道是否可以使用Semaphore来实现阻塞队列 在下面的代码中 我使用一个信号量来保护关键部分 并使用另外两个信号量对象来跟踪空槽和已填充对象的数量 public class BlockingQueue private List qu
  • 使用 Spring Data 将结果集与实体和计数进行映射的首选方法

    通常存在显示所有类别以及这些类别的使用频率的业务问题 这个问题很容易通过查询来回答 SELECT c count FROM category assignment ca LEFT JOIN category c on ca c id c i
  • 如何在另一个组件中访问一个组件的变量 [Angular]

    我是角度新手 我今天正在尝试一件简单的事情 我已经浏览了很多答案 但无法正确实施它们 我想访问一些变量filter panel in filter bar 我的两个自定义组件 但两人都不是亲子关系 尽管它们位于同一目录中 但它们是独立的 在
  • jq 在输出中打印字符

    我要打印 输出标题内的分隔符 curl s http cd0a4a ethosdistro com json yes jq c rigs 0d6b27 50dc35 version driver miner gpus miner insta
  • UINavigationController“后退按钮”自定义文本?

    的 后退按钮 UINavigationController默认情况下显示堆栈中最后一个视图的标题 有没有办法在后退按钮中添加自定义文本 From 这个链接 self navigationItem backBarButtonItem UIBa
  • 如何让查询在分页结果时转移到后续页面

    我已经浏览了网站上所有的分页问题和答案 在所有冗长的代码和面向对象的解决方案中 这段代码是最短和最简单的
  • UML 中的轮廓图是什么?

    UML 中的轮廓图是什么 更具体地说 这张图的作用是什么 我们可以用它做什么 我们可以用它解决问题 或者我们可以用它简化更多解决方案 A 剖面图允许您通过定义您自己的构造型和一些其他类似元素来定义 UML 的扩展 这个想法是针对特定领域定制
  • OS X 上 Matplotlib 图形中的表情符号

    我有一个 Matplpoltlib 的奇异任务 我需要在标签内显示表情符号 我使用的是 OS X 因此系统范围内对表情符号有很好的支持 然而 Matplotlib 却无法解决问题 目前 表情符号显示为空框 我使用的是Python 3 所以U
  • 按钮切换引导程序刷新后保持状态

    我有三个切换按钮 我想在刷新页面后保持切换状态 我读了很多东西 但不知道如何在我的情况下使用它们 这是按钮和 div
  • 将数组分解成小数组

    我正在向一系列人员发送电子邮件 我有数组中的收件人列表 但该列表最多可达 500 人 我的邮件服务器一次发送的收件人数量有限制 50 个收件人 因此 如果列表 gt 50 我需要将其分成不同的邮件 将一个数组分成 50 个数组的最佳方法是什
  • 在最新版本(3.0.x)Resteasy 中,我们应该使用什么 ClientResponse 和 GenericType?

    我正在开发Resteasy 我将应用程序的 Maven 依赖项从2 2 x to 3 0 x突然我发现大多数 API 都被弃用了 因此 此迁移对我的代码和测试用例产生了影响 因为它只是说在我的整个代码中已弃用 我正在以我的测试用例为例 早期
  • 使用 Adb 输入时记录按键事件

    我使用命令adb shell su getevent lt dev input event5 gt Test txt记录触摸事件 当我触摸屏幕时它会起作用 即它会写入所有操作 按下键 移动键和向上键以及坐标 但是 当我使用命令时adb sh
  • 是否有用于解析数字(包括范围)的 Perl 模块?

    有没有一个模块可以为我做这个 样本输入 2 5 7 9 3 11 14 usr bin env perl use warnings use strict use 5 012 sub aw parse my in max chomp in m
  • Tomcat 使用 Java 8 SDK,但不会编译具有 Java 8 语言功能的 JSP。如何修复它?

    我想我正在考虑 Tomcat 配置问题与我当前的问题 我正在为 Tomcat 8 5 8 开发 Java Servlet 和 JSP 应用程序 并已开始使用 Java 8 语言功能 特别是方法引用和流 在我运行 jdk1 8 0 211 的
  • Firebase 简单登录的用户名(电子邮件/密码)

    我正在使用带有电子邮件 密码身份验证的 Firebase 简单登录 我在 id username 中存储一个名为 用户名 的变量 以便每个用户都有唯一的名称 但是 用户可以编辑该位置的值并输入现有的用户名 有没有办法禁止用户将用户名更改为现
  • 如何在模板中显示html?

    我有聚合物元素 example 默认情况下模板是不允许插入html的 该示例无法运行 因为不允许插入html 也许存在这样做的方法 做到这一点的一种方法是通过 Changed观察者并设置 innerHTML节点 div div labelC
  • Rails ActiveRecord:保存嵌套模型被回滚

    使用 Rails 5 gem rails gt 5 0 0 gt 5 0 0 1 我创建了我能想到的最简单的示例来演示该问题 父级 rb class Parent lt ApplicationRecord has many children
  • 循环通过 SimpleXMLElement 来访问属性

    我正在尝试处理使用 SimpleXML 检索的数据 但遇到了很大的困难 我在这里阅读了很多关于这个主题的帖子 它们看起来都像我正在做的事情 但我的不起作用 这是我所得到的