我有一个肥皂要求。我能够发送请求并获得字符串响应。现在,我想将其转换为XML并从中获取所需的数据。回复string(1383) "<?xml version="1.0" encoding="UTF-8"?><ResponseMessage xmlns:ns="http://iec.ch/TC57/2011/schema/message" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://iec.ch/TC57/2011/schema/message Message.xsd"><Header> <Verb>reply</Verb> <Noun>EndDeviceControls</Noun> <Revision>2.0</Revision> <Timestamp>2019-05-04T10:39:11+04:30</Timestamp> <Source>HES-BSTC</Source> <AsyncReplyFlag>true</AsyncReplyFlag> <ReplyAddress>http://ip:port/AmiWeb/services/Metering</ReplyAddress> <User> <UserID>user</UserID> </User> <MessageID>6C3F761B-A1EC-4EBE-BB49-67B720C5AE62</MessageID> <CorrelationID>1001</CorrelationID> <Property> <Name>password</Name> <Value>password</Value> </Property> <Property> <Name>timeout(m)</Name> <Value>30</Value> </Property></Header><Reply> <Result>OK</Result> <Error> <code>0.3</code> </Error></Reply></ResponseMessage>"输出object(SimpleXMLElement)#121 (0) { }输出为空。现在我想要两件事将字符串转换为XML从返回的XML中,我想<AsyncReplyFlag>true</AsyncReplyFlag>从响应中获取的值
3 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
尝试使用输出一个SimpleXMLElementvar_dump()
并不是一个好主意,而且正如您所看到的那样-付出的代价不多。
如果您只想查看已加载的XML,请使用...
echo $xml->asXML();
这将向您显示XML已加载好,因此要输出该字段,您的结果就是
$xml = simplexml_load_string($response); echo $xml->Header->AsyncReplyFlag;
幕布斯7119047
TA贡献1794条经验 获得超8个赞
使用XPath查询
$xml = new SimpleXMLElement($xmlData);
echo $xml->xpath('//AsyncReplyFlag')[0];
或者
您可以使用 xml_parser_create
$p = xml_parser_create();
xml_parse_into_struct($p, $xml, $values, $indexes);// $xml containing the XML
xml_parser_free($p);
echo $values[12]['value'];
有关其他详细信息,您可以 print_r($values)
- 3 回答
- 0 关注
- 145 浏览
添加回答
举报
0/150
提交
取消