使用 SimpleXML 从 XML 获取多个项目

2024-05-06

我正在尝试使用下面的代码循环 XML 中的多个项目。

$xml = get_data('the-url');
$data = simplexml_load_string($xml);

foreach($data->item AS $item) {
    foreach($item AS $test) {
        var_dump($test);
    }
}

XML 看起来像这样:

<xml>
    <item>
        <name>...</name>
        <chapter>...</chapter>
        <text>
            ...
        </text>
    </item>
    <item>
        <name>...</name>
        <chapter>...</chapter>
        <text>
            ...
        </text>
    </item>
    <item>
        <name>...</name>
        <chapter>...</chapter>
        <text>
            ...
        </text>
    </item>
    <item>
        <name>...</name>
        <chapter>...</chapter>
        <text>
            ...
        </text>
    </item>
    <item>
        <name>...</name>
        <chapter>...</chapter>
        <text>
            ...
        </text>
    </item>
</xml>

就目前的情况而言,var_dump($test)打印这个:

object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { }
object(SimpleXMLElement)#7 (0) { } object(SimpleXMLElement)#8 (0) { } ...

我应该怎么做才能让我的代码循环所有项目并打印值?


尝试这个:

$xml_content = file_get_contents('http://url/feed.xml');
$data = simplexml_load_string($xml_content);

foreach ($data->item as $item) {
    var_dump($item->bookname);
}

如果需要,您还可以将整个 $item 转换为数组:

foreach ($data->item as $item) {
    $itemArray = (array) $item;
    var_dump($itemArray);
}

当您需要首先将其转换为字符串以返回文本值时,您正在转储对象。 另外,我不认为第二个foreach正在做任何事情或需要,所以我将其删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 SimpleXML 从 XML 获取多个项目 的相关文章

  • php中的$$是什么意思? [复制]

    这个问题在这里已经有答案了 变量后面的两个背对背 是什么意思 像这样 id 我在哪里可以找到更多相关信息 谢谢 In PHP 意味着您将给至少一名维护程序员带来多年的痛苦和折磨 请注意 您最终可能会成为维护程序员 它是一个可变变量 想象一下
  • 将 XSD 文件转换为 C# 可序列化类

    我尝试遵循以下答案这个问题 https stackoverflow com questions 87621 how do i map xml to c objects 但无法让 xsd exe 愉快地获取 XSD 文件并将它们转换为类 此处
  • 在laravel中组合两个不同的无关系数据库表查询进行分页

    我的数据库中有两个不相关的表 我需要将它们合并 以便我可以将其放在我的搜索视图中 但我不知道是否可能 这是我的代码 这news and season表不相关 但它们具有相似的列 我试图将其放入一个对象中以便于分页 是否可以 search r
  • 如何使用XPath选择非空段落?

    我想要抓取的网页具有类似的结构 每个都有一个段落是一个问题 一个段落是一个答案 我想抓取每个问题和答案并将它们存储在两个项目中 问题是 在某些页面上 问题和答案分别是 xxx p 1 and xxx p 2 但在其他页面上 xxx p 1
  • Android - 保存动态更改布局的状态

    我有一个布局 用户可以在其中添加按钮并将其放置在他们想要的位置 我想允许用户保存他们的布局 以便下次打开应用程序时加载它 有谁知道我是否可以将文件保存到 SD 卡上 或者 我可以使用某种layout getXml 方法并将其放入我的应用程序
  • JAXB 不会解组接口列表

    看来 JAXB 无法读取它所写的内容 考虑以下代码 interface IFoo void jump XmlRootElement class Bar implements IFoo XmlElement public String y p
  • Zend Framework 中的动态默认模块

    有谁知道在 Zend Framework 中动态设置默认模块并且不会遇到命名空间问题的方法 例如 我想要做的是有一个允许加载的模块表 其中一个设置为默认模块 例如 我可能有 admin blog calendar 作为可以加载的模块 如果我
  • div 中的文本字符有限,添加“阅读更多”链接并在单击链接时显示所有字符

    我有一个 div 里面有文本 使用 PHP 和 MySQL 显示 结构如下 div class description p Here is a lot of text p div 我想在 p 标签内的文本超过 100 个字符时显示 阅读更多
  • 将 LINQ 嵌套到 XML

    我有一些来自遗留应用程序的非标准 XML
  • PHP - 警告:strpos() [function.strpos]: 空分隔符是什么意思?

    警告 strpos function strpos 空分隔符是什么意思 我有这个 if strpos 039 text false text str replace 039 text 猜测一下 我会说 text是一个空字符串 感谢马克指出细
  • PHP 的脚手架 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 PHP 中有什么东西可以像 Rails 一样创建基本的脚手架吗 编辑 我需要一些东西来快速原型化 一些框架比如Symfony http www sym
  • Java 中的 XPath 节点集

    我在 eclipse 中有这段代码 NodeSet nodes NodeSet xPath evaluate expression inputSource XPathConstants NODESET 它给我 NodeSet 上的编译时错误
  • 如何在php中使用一张图像绘制形状

    我需要使用图像的一部分来创建帧图像 例如 用户将从后端上传图像片段 现在我需要根据前端用户的要求在前端创建一个框架 用户将选择框架的高度和宽度 然后他将选择该图像片段 如下所示 我没有办法做到这一点 我尝试通过 css 和 html can
  • 计算 XML 中特定 XML 节点的数量

    请参阅此 XML
  • Paypal 将钱从一个帐户转移到另一个帐户

    我知道这个建议如何汇款至任何 PayPal 账户 https stackoverflow com questions 1559808 paypal api send money to any paypal account但到目前为止我所尝试
  • 使(文本到图像)图像具有一定的宽度但无限的长度?

    我有下面的代码 可以用大量文本生成图像 我希望该图像的宽度为 700 像素 我还希望它保留字符串所具有的段落结构 该字符串来自 MySQL 数据库 我怎样才能实现这一点 font 2 width imagefontwidth font st
  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • 为什么这评估为 true

    为什么这评估结果为真
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib
  • 我可以让 swagger-php 在查询字符串上使用数组吗?

    我使用 Swagger php 当我定义查询字符串上的参数时 它可以是一个数组 但据我所知 它不支持这种查询字符串 https api domain tld v1 objects q 1 q 5 q 12 我相信这会被设定in the co

随机推荐

  • HTML5 - 创建画布视口

    我有一个 2D 数组 宽 30 下 20 然而 视口仅绘制横向 15 和向下 10 的内容 我最初有一个这样的游戏 我一直在努力实现这样的目标 这是我的小提琴 http jsfiddle net sTr7q http jsfiddle ne
  • lxml 中的通配符命名空间

    如何使用 xpath 忽略 xml 命名空间进行查询 我正在使用 python lxml 库 我尝试了以下解决方案this https stackoverflow com questions 13463871 xpath selecting
  • LiveData无法观察到变化

    我正在更新一个ViewModel 中 DialogFragment 的 LiveData 值 但无法获取Fragment中的值 视图模型 class OtpViewModel private val otpUseCase OtpUseCas
  • 主机系统 Azure-WorkerRole 无法访问角色

    我使用辅助角色机器 中型 gt 2 个核心 3 5 GB RAM 来完成大量工作 并且我能够使用 100 的 CPU 两个核心 和 85 的 RAM 在这项工作期间 每次大约需要 20 分钟 40 分钟 Azure 认为机器不健康并停止我的
  • 如何从字典构造defaultdict?

    如果我有d dict zip range 1 10 range 50 61 我怎样才能建立一个collections defaultdict出于dict 唯一的论点defaultdict似乎采取的是工厂功能 我必须初始化然后再经历原来的d并
  • 当用户的角色没有足够的权限时,将用户从 web.config 重定向到另一个页面

    我正在使用 ASP NET 我希望能够将用户从 Web 配置重定向到另一个页面 我有很多限制 例如
  • 如何使用xampp连接sql服务器和php?

    我正在尝试使用 Xampp 将我的 SQL 服务器与 PHP 连接 我已经在ext文件夹中上传了dll文件 但无法连接它 我的PHP版本是7 2 6 上传的dll文件是 php pdo sqlsrv 72 ts dll php sqlsrv
  • CSV 数据中的逗号

    我有一个 CSV 文件 我将其直接导入到 SQL Server 表中 在 CSV 文件中 每一列都用逗号分隔 但我的问题是我有一个 地址 列 并且该列中的数据包含逗号 所以发生的情况是 地址列的一些数据将转到其他列 并将导入到 SQL Se
  • .class:hover 在 Firefox 中不起作用?

    所以我有一些html a class clicktext read more a 我想给它一个 hover 动画 如下所示 clicktext clicktext hover text decoration underline clickt
  • 注释扩展函数的惰性求值

    我编写了一个函数来扩展组内的注释 function data group col expand col data gt dplyr group by rlang ensym group col gt dplyr mutate rlang e
  • 在 Cocoa 应用程序中验证用户输入的 URL 的最佳方法是什么?

    我正在尝试构建一个自制的网络浏览器 以更加熟练地使用 Cocoa 我需要一种好方法来验证用户是否输入了有效的 URL 我尝试过一些正则表达式 但 NSString 有一些有趣的怪癖 并且不喜欢我见过的大多数正则表达式使用的一些反引号 你可以
  • Python数据框将列表列分解为多行[重复]

    这个问题在这里已经有答案了 我有一个像这样的数据框 desc id info a b c 2 type u v w 18 tail 三列 desc id info desc 是一个列表 我想要这个 des id info a 2 type
  • JAVA GENERICS错误:具有相同的擦除,但两者都没有覆盖另一个[重复]

    这个问题在这里已经有答案了 为了好玩 我正在创建一个排序框架 以更好地理解各种排序算法 而且 我试图使其足够通用 以便它可以对实现扩展可比较接口的接口的任何内容进行排序 然而 java 编译器对我不满意 这是我的界面 public inte
  • 如何覆盖!重要?

    我创建了一个自定义样式表 它覆盖了我的 WordPress 模板的原始 CSS 但是 在我的日历页面上 原始 CSS 将每个表格单元格的高度设置为 important宣言 td height 100px important 有什么方法可以覆
  • 尝试从 npm 安装 Angular 2 Material - 源文本中无法识别的标记

    我从 PowerShell 尝试以下命令 以管理员身份 npm install angular2 material 并得到错误 Unrecognized token in source text At line 1 char 13 npm
  • 是否可以更改 Android L TimePickerDialog 的样式?

    我正在 Android L 模拟器上测试我的应用程序 我注意到 TimePickerDialog 已显着更改为 这与我的应用程序的主题不符 我想知道在 Android L 上运行时是否可以获得旧的 TimePickerDialog 样式 A
  • jekyll 变量,if 函数

    为什么这样的东西不起作用 我尝试过滤今年的所有帖子 div class tiles for post in site categories articles capture pubyear post date date Y endcaptu
  • 通过访问硬盘序列号来保护软件[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想获得VB NET或VB代码来在启
  • 静态方法而不是原型方法Javascript

    当在类中调用实例函数时 对象的每个实例都会获得自己的函数副本 但在原型方法和静态方法中不会创建副本 它们属于类 所以如果它们都没有创建其函数的副本 那么为什么如果我们不想复制 可以简单地使用原型方法 那么我们是否有静态函数 我有点困惑 如果
  • 使用 SimpleXML 从 XML 获取多个项目

    我正在尝试使用下面的代码循环 XML 中的多个项目 xml get data the url data simplexml load string xml foreach data gt item AS item foreach item