我遇到了这样一个问题,即我的xml文件的某些节点已解析&amp ;;在未检测到其他人的情况下正确显示(至少我不知道这里出了什么问题)

我将提供link to it而不是发布xml文件.这是一个小的XML代码段供您查看xml结构:

World of Warcraft EU Pre-Paid Game Time Card 60 Days

EUR

现在,我正在使用此代码来解析/读取xml文件.

$xmlDOM = new DOMDocument();

$xmlDOM->load("http://inexus.us/compare.xml");

$document = $xmlDOM->documentElement;

foreach ($document->childNodes as $node) {

if ($node->hasChildNodes()) {

foreach($node->childNodes as $temp) {

echo $temp->nodeName."=".$temp->nodeValue."
";

}

}

}

使用该代码,我得到每个元件的名称

但是我还需要获取存储在o元素中的信息…(即id,url,price),但我不太了解如何访问它们.

输出也会返回几个#text =块. (我想这是由于xml中的空格引起的吗?)

输出的一小段代码:

#text=

#text=

o= World of Warcraft EU Pre-Paid Game Time Card 60 Days EUR

#text=

o= World of Warcraft EU Battle Chest cd-key EUR

#text=

o= World of Warcraft EU Cataclysm cd-key EUR

#text=

任何帮助/提示表示赞赏!

解决方法:

对于这样的XML文档,在SimpleXML中处理起来通常更容易.通常,您要查找的称为属性.在作为元素子元素的文本值旁边,元素还具有属性.

在SimpleXML中,访问非常简单:使用数组符号和字符串键访问元素的属性:

$game['id']; # id attribute of $game (here the element)

要访问一个孩子(通常只有一个孩子,例如< name>),可以通过其child-element-name来访问它:

$game->name; # (first) name child element of $game

并且如果您在字符串上下文中使用它(例如,作为字符串参数; echo或强制转换(字符串)$game->名称),它将返回的不是元素,而是内部的文本值.

这是一些示例代码(也使用简单的xpath):

$url = 'http://inexus.us/compare.xml';

$xml = simplexml_load_file($url);

foreach($xml->xpath('/*/group/o') as $index => $game)

{

printf("[%04d] %' -48s %' 5s %s\n \n",

$game['id'], # id attribute

trim($game->name), # name child text value

$game['price'], # price attribute

trim($game->currency), # currency child text value

$game['url'] # url attribute

);

}

这是输出:

[0001] World of Warcraft EU Pre-Paid Game Time Card 60 Days 21.43 EUR

[0003] World of Warcraft EU Battle Chest cd-key 10.31 EUR

[0668] World of Warcraft EU Cataclysm cd-key 6.18 EUR

[0954] World of Warcraft EU Mists of Pandaria cd-key 18.80 EUR

[0988] World of Warcraft EU Battle Chest + Cataclysm cd-key 15.48 EUR

[0018] Eve Online Pre-Paid Card 60 Days Special Edition 28.40 EUR

[0766] Eve Online +30 Days cd-key 11.60 EUR

[1057] Eve Online Pre-Paid Card 60 Days 25.82 EUR

[0029] Sony Online Pre-Paid 30 days EU 14.19 EUR

...

标签:dom,xml,parsing,php

来源: https://codeday.me/bug/20191031/1973633.html

php xml解析无值,PHP-XML解析-缺少节点相关推荐

  1. python解析返回值类型为xml的数据接口

    样参 <?xml version="1.0" encoding="UTF-8"?>-<root><state>success ...

  2. Retrofit使用SimpleXmlConverterFactory解析xml之无坑版(无坑有效期:暂定17年底)

    假设服务器端的xml文件是这样的 <?xml version="1.0" encoding="UTF-8"?><oschina>< ...

  3. Java基础加强重温_13:XML(可拓展标记语言)、XML语法、XML约束、XML解析(Dom4j,JAXP)、Dom4j基本使用、Xpath表达式(XML路径语言)、XML解析综合案例

    摘要 Java基础加强重温_13: XML(可拓展标记语言.作用:小型数据库.框架配置文件.不同平台数据交换). XML语法(文档.标签/元素.属性.注释.转义字符.CDTA区) XML约束(DTD约 ...

  4. iOS基础-数据解析方法初步总结-(XML,JSON欢迎指正)

    小时候的记忆与大家一起分享,愿君安好! 解析的基本概念 解析: 从事先规定好的格式中提取数据 解析的前提: 提前约定好格式,数据提供方按照格式提供数据,数据获取方则按照格式获取数据 OS开发常见的解析 ...

  5. Android使用SAX实现XML解析,使用text/xml格式与后台交互

    这篇博文正式发表于2015-02-16 14:20,现在显示的创建时间2015-02-05 10:07是当初写草稿的时间 一.SAX解析XML 1,首先展示一下要写入以及解析的xml的文件格式: &l ...

  6. 您如何在PHP中解析和处理HTML / XML?

    如何解析HTML / XML并从中提取信息? #1楼 QueryPath很好,但是要小心"跟踪状态",因为如果您没有意识到这意味着什么,那可能意味着您浪费了大量的调试时间来试图找出 ...

  7. XML系列之--解析电文格式的XML(二)

    上一节介绍了XML的结构以及如何创建.讲到了XML可作为一种简单文本存储数据,把数据存储起来,以XML的方式进行传递.当接收到XML时,必不可少的就是对其进行解析,捞取有效数据,或者将第三方数据以节点 ...

  8. Xml 格式数据的生成和解析

    相关阅读 XML约束 Xml 格式数据的生成和解析 XML解析器 什么是XML XML全称为Extensible Markup Language, 意思是可扩展的标记语言,它是 SGML(标准通用标记 ...

  9. XML学习笔记02【xml_解析】

    Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 03 xml_解析 xml_解 ...

最新文章

  1. linux rpm找不到命令_linux环境下 python环境import找不到自定义的模块
  2. 知否,知否,交通数据邂逅【数据故事计划二等奖】
  3. [转] 图 + 文 + 公式 理解LSTM
  4. c++ stl之pirority_queue
  5. nginx 支持h265 的 rtmp和hls,http-flv
  6. 梯度下降与delta法则
  7. 网络:TCP维护安全可靠机制提供的定时器
  8. layuimini 图标颜色便捷指定
  9. 在线教学视频的设计与实现
  10. leetcode—14.链表反转类题目python解答
  11. 色板游戏(洛谷 1558)
  12. 北京限行轮换时间7月5日起,北京新一轮尾号限行规定用便签提醒
  13. unity 敌人朝向主角
  14. item的介绍与使用-2.0
  15. 元数据管理 开源项目技术选型
  16. 常见英文缩写小节-江晚正愁余-iteye技术网站
  17. 检测号码是否开通微信如何做?
  18. 在智能手机上跟踪ADS-B系统的飞机航线信息
  19. DeepTech深科技专访丨分布式系统开源项目领跑者Alluxio获5000万美元C轮融资
  20. Android 多窗口实现

热门文章

  1. 【C++札记】类的继承
  2. 【此电脑】图标显示至桌面方法
  3. OneAlive--游戏音效管理器
  4. 微软即将在 IE 10 中默认启用 Flash
  5. DouPHP如何在一个页面调用多个单页的内容
  6. 金针探底技术分析(下)续
  7. UUID 和 GUID 的区别
  8. 车规电子-AEC-Q检测认证
  9. openlayers官方教程(一)Introduction
  10. html静态模板继承,Django框架(七)-- 模板层:模板导入、模板继承、静态文件...