Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >有关如何使用SimpleXML解析存储在变量中的XML值的特定场景

有关如何使用SimpleXML解析存储在变量中的XML值的特定场景
EN

Stack Overflow用户
提问于 2013-06-06 13:41:37
回答 1查看 192关注 0票数 0

我想使用简单的XML解析存储在变量中的XML数据。

THis就是我所说的数据:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<SearchResults:searchresults xsi:schemaLocation="http://www.zillow.com/static/xsd/SearchResults.xsd /vstatic/ae1bf8a790b67ef2e902d2bc04046f02/static/xsd/SearchResults.xsd">
    <request>
        <address>2114 Bigelow Ave</address>
        <citystatezip>Seattle, WA</citystatezip>
    </request>
    <message>
        <text>Request successfully processed</text>
        <code>0</code>
    </message>
    <response>
        <results>
            <result>
                <zpid>48749425</zpid>
                <links>
                    <homedetails>http://www.zillow.com/homedetails/2114-Bigelow-Ave-N-Seattle-WA-98109/48749425_zpid/</homedetails>
                    <graphsanddata>http://www.zillow.com/homedetails/charts/48749425_zpid,1year_chartDuration/?cbt=7522682882544325802%7E9%7EY2EzX18jtvYTCel5PgJtPY1pmDDLxGDZXzsfRy49lJvCnZ4bh7Fi9w**</graphsanddata>
                    <mapthishome>http://www.zillow.com/homes/map/48749425_zpid/</mapthishome>
                    <comparables>http://www.zillow.com/homes/comps/48749425_zpid/</comparables>
                </links>
                <address>
                    <street>2114 Bigelow Ave N</street>
                    <zipcode>98109</zipcode>
                    <city>Seattle</city>
                    <state>WA</state>
                    <latitude>47.63793</latitude>
                    <longitude>-122.347936</longitude>
                </address>
                <zestimate>
                    <amount currency="USD">1219500</amount>
                    <last-updated>11/03/2009</last-updated>
                    <oneWeekChange deprecated="true"/>
                    <valueChange duration="30" currency="USD">-41500</valueChange>
                    <valuationRange>
                        <low currency="USD">1024380</low>
                        <high currency="USD">1378035</high>
                    </valuationRange>
                    <percentile>0</percentile>
                </zestimate>
                <localRealEstate>
                    <region id="271856" type="neighborhood" name="East Queen Anne">
                        <zindexValue>525,397</zindexValue>
                        <zindexOneYearChange>-0.144</zindexOneYearChange>
                        <links>
                            <overview>http://www.zillow.com/local-info/WA-Seattle/East-Queen-Anne/r_271856/</overview>
                            <forSaleByOwner>http://www.zillow.com/homes/fsbo/East-Queen-Anne-Seattle-WA/</forSaleByOwner>
                            <forSale>http://www.zillow.com/east-queen-anne-seattle-wa/</forSale>
                        </links>
                    </region>
                    <region id="16037" type="city" name="Seattle">
                        <zindexValue>381,764</zindexValue>
                        <zindexOneYearChange>-0.074</zindexOneYearChange>
                        <links>
                            <overview>http://www.zillow.com/local-info/WA-Seattle/r_16037/</overview>
                            <forSaleByOwner>http://www.zillow.com/homes/fsbo/Seattle-WA/</forSaleByOwner>
                            <forSale>http://www.zillow.com/seattle-wa/</forSale>
                        </links>
                    </region>
                    <region id="59" type="state" name="Washington">
                        <zindexValue>263,278</zindexValue>
                        <zindexOneYearChange>-0.066</zindexOneYearChange>
                        <links>
                            <overview>http://www.zillow.com/local-info/WA-home-value/r_59/</overview>
                            <forSaleByOwner>http://www.zillow.com/homes/fsbo/WA/</forSaleByOwner>
                            <forSale>http://www.zillow.com/wa/</forSale>
                        </links>
                    </region>
                </localRealEstate>
            </result>
        </results>
    </response>
</SearchResults:searchresults>

现在,上述类型的XML存储在名为$zillow_data的变量中

首先,我使用下面的代码使用SimpleXML加载它

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$xml = simplexml_load_string($zillow_data);

现在,我希望获得"message“值,如上面的XML数据所示。

当我尝试的时候

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach($xml->message[0]->text[0] as $response)

它不起作用。

当我尝试执行类似以下代码的操作时,在Netbeans IDE中遇到错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach($xml->SearchResults:searchresults[0]->message[0]->text[0] as $response)

我得到的错误是“意外的:”

如何正确获取上述XML数据中的消息?

另外,我如何逐个解析所有的"result“元素?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-06 14:31:58

如果您使用以下代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$xml = simplexml_load_string($string);

$string变量包含XML时,第一个元素<SearchResults:searchresults>成为主$xml SimpleXMLElement对象,而子标签<request><message><response>是它的属性。

因此,忘记undefined namespace警告,您应该能够这样做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach($xml->response->results->result as $result) {
    echo (string) $result->zpid;
}

只有一个message只有一个text元素,因此如果您想回显这个元素,您应该只做:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo (string) $xml->message->text;

使用SimpleXML加载后,执行var_dump($xml);以了解转换为对象和数组的XML结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16963659

复制
相关文章
PHP中simplexml_load_string解析xml的正确方式
对接我php接口的是安卓客户端,json字符串中在一个元素的时候是对象类型,多个元素的时候是数组类型,安卓客户端解析就失败了。
宣言言言
2019/12/20
3.6K1
PHP解析Xml:SimpleXML类学习笔记
SimpleXML 是 PHP 5 中的新特性。SimpleXML 扩展提供了一种获取 XML 元素的名称和文本的简单方式。与 DOM 或 Expat 解析器相比,SimpleXML 仅仅用几行代码就可以从 XML 元素中读取文本数据。SimpleXML 可把 XML 文档(或 XML 字符串)转换为对像;
房东的狗丶
2023/02/17
9710
PHP中遍历XML之SimpleXML
  简单来讲述一些XML吧,XML是可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。XML是当今用于传输数据的两大工具之一,另外一个是json。
那一叶随风
2018/08/22
2.3K1
PHP中遍历XML之SimpleXML
XML 在SQLServer中的使用
SQL Server对于XML支持的核心在于XML数据的格式,这种数据类型可以将XML的数据存储于数据库的对象中,比如variables, columns, and parameters。当你用XML数据类型配置这些对象中的一个时,你指定类型的名字就像你在SQLServer 中指定一个类型一样。
全栈程序员站长
2022/07/11
5.9K0
XML 在SQLServer中的使用
SQL Server对于XML支持的核心在于XML数据的格式,这种数据类型可以将XML的数据存储于数据库的对象中,比如variables, columns, and parameters。当你用XML数据类型配置这些对象中的一个时,你指定类型的名字就像你在SQLServer 中指定一个类型一样。 XML的数据类型确保了你的XML数据被完好的构建保存,同时也符合ISO的标准。在定义一个XML数据类型之前,我们首先要知道它的几种限制,如下: 一个实例的XML列不能包含超过2GB的数据。 一个XML的列不能是索引
用户1217611
2018/01/30
7.7K0
特定场景下Ajax技术的使用
jax技术包含了几种技术:javascript、xml、css、xstl、dom、xhtml和XMLHttpRequest七种技术,所以ajax就像是粘合剂把七种技术整合到一起,从而发挥各个技术的优势。
awwewwbbb
2022/04/27
1.1K0
特定场景下Ajax技术的使用
springboot 在程序/配置文件中使用pom.xml中的变量
构建项目时配置文件中@project.version@会被替换为pom.xml中的值
路过君
2022/06/26
5.9K0
python解析xml遇到的问题分享(命名空间有关)
要验证股票公司事件的数据入库规则,需要对开发的etl代码以及映射规则进行验证,然后数据源给的源文件格式是xml格式的,人工核对起来的话,考虑到有的字段还有枚举值映射关系或者一些简单的格式处理之类的,如果每次都人工去Ctrl + F去xml文件里面搜索标签去校验对应数据的话,效率不是特别的高,也不利于后续开发代码调整后的快速验证,因此我考虑自己用python脚本去按照分析师的规则文档自己解析一下xml文件,然后用自己解析出来的结果跟开发解析出来的数据进行一下对比,在一定程度上,能够稍微提升一下工作的效率。
小博测试成长之路
2022/12/02
8460
python解析xml遇到的问题分享(命名空间有关)
如何在PHP中解析XML
XML解析器是一个程序,它可以将XML文档或代码转换为XML文档对象模型(DOM)对象。
Lemon黄
2020/07/07
3.6K0
js中如何判断数组中包含某个特定的值_js数组是否包含某个值
array.includes(searchElement[, fromIndex])
全栈程序员站长
2022/09/27
18.5K0
java解析xml格式的节点属性值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137716.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.2K0
在PHP中如何使用全局变量的方法详解
简介 即使开发一个新的大型PHP程序,你也不可避免的要使用到全局数据,因为有些数据是需要用到你的代码的不同部分的。一些常见的全局数据有:程序设定类、数据库连接类、用户资料等等。有很多方法能够使这些数据成为全局数据,其中最常用的就是使用“global”关键字申明,稍后在文章中我们会具体的讲解到。 使用“global”关键字来申明全局数据的唯一缺点就是它事实上是一种非常差的编程方式,而且经常在其后导致程序中出现更大的问题,因为全局数据把你代码中原本单独的代码段都联系在一起了,这样的后果就是如果你改变其中的某一部
企鹅号小编
2018/02/08
7.3K0
关于某些特定直播场景中的技术分析
今天,小编为大家总结了一些在直播平台搭建中,在某些特定场景中的技术分析,对想要接触直播平台搭建流程的投资商提供些许技术理解和帮助,下面一起来看下:
云豹通讯员
2020/03/09
1.2K0
关于某些特定直播场景中的技术分析
使用 Python 删除大于特定值的列表元素
Lambda 函数,通常称为“匿名函数”,与普通的 Python 函数相同,只是它可以在没有名称的情况下定义。def 关键字用于定义普通函数,而 lambda 关键字用于定义匿名函数。但是,它们仅限于单一的表达方式。与常规函数一样,它们可以接受多个参数。
很酷的站长
2023/02/23
10.7K0
使用 Python 删除大于特定值的列表元素
如何获取变量token的值
1.客户端使用用户名跟密码请求登录 2.服务端收到请求,去验证用户名与密码 3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 LocalStorage 里,客户端每次向服务端请求资源的时候需要带着服务端签发的 Token 5.服务端收到请求,然后去验证客户端请求里面带着的 Token,如果验证成功,就向客户端返回请求的数据 6.web/APP登录的时候发送加密的用户名和密码到服务器,服务器验证用户名和密码,如果成功,以某种方式比如随机生成32位的字符串作为token,存储到服务器中,并返回 token 到web/APP,以后web/APP请求时凡是需要验证的地方都要带上该 token,然后服务器端验证 token,成功返回所需要的结果,失败返回错误信息,让他重新登录。其中服务器上 token 设置一个有效期,每次web/APP请求的时候都验证token 和有效期。 二、如何获取token的值,进行接口测试
用户7880705
2020/10/29
14.5K0
使用let/const定义变量的场景
在javaScript中,定义变量是一个非常常见的操作,在Es5中,通常使用var定义声明变量,而在Es6中新增了let和const关键字,也是用于声明定义变量
itclanCoder
2022/01/25
1K0
01:查找特定的值
01:查找特定的值 查看 提交 统计 1 #include<iostream> 2 using namespace std; 3 int a[10001]; 4 int main() 5 { 6 int n; 7 int ans; 8 cin>>n; 9 for(int i=1;i<=n;i++) 10 { 11 cin>>a[i]; 12 } 13 cin>>ans; 14 for(int j=1;j<
attack
2018/04/03
1.8K0
Java中Future的使用场景和解析
我们通常都是开启一个新的子线程去执行比较耗时的代码,这使用起来非常简单,只需要将耗时的代码封装在Runnable中的run()方法里面,然后调用thread.start()就行。但是我相信很多人有时候都有这样的需求,就是获取子线程运行的结果,比如客户端远程调用服务(耗时服务),我们有需要得到该调用服务返回的结果,这该怎么办呢?很显然子线程运行的run()方法是没有返回值。这个时候Future的作用就发挥出来了。
全栈程序员站长
2022/07/04
3680
Java中Future的使用场景和解析
【DB笔试面试584】在Oracle中,如何得到已执行的目标SQL中的绑定变量的值?
当Oracle解析和执行含有绑定变量的目标SQL时,如果满足如下两个条件之一,那么该SQL中的绑定变量的具体输入值就会被Oracle捕获:
AiDBA宝典
2019/09/29
3K0
点击加载更多

相似问题

如何使用simplexml解析xml输出的特定子级?

12

如何使用SimpleXML解析XML并将其存储在地图中?

12

使用simplexml的PHP XML解析

11

使用simplexml解析复杂的xml

11

使用simpleXML进行XML解析

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文