我有一個肥皂要求。我能夠發送請求并獲得字符串響應。現在,我想將其轉換為XML并從中獲取所需的數據?;貜蛃tring(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) { }輸出為空?,F在我想要兩件事將字符串轉換為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 關注
- 162 瀏覽
添加回答
舉報
0/150
提交
取消