[英]php parse the string obtained inside the XML tag
最近,我不得不做一個api調用,它返回了XML響應。 但是,這似乎是一個奇怪的XML,它只有1個基本標記,而所有其他信息都在此基本標記內以字符串形式給出。 我需要獲取每個字符串標簽的值,但不知道如何實現。
下面給出的是從api接收的示例響應。
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://webservices/api/v1/Inventory.asmx">
<NewDataSet>
<Table>
<ITEMNO>120</ITEMNO>
<IDESC>BERG 22423 BULL .224 90GR VLD TGT 100</IDESC>
<IMFSEQ>570</IMFSEQ>
<IMFGNO>628</IMFGNO>
<CSEQ>0</CSEQ>
<ITYPE>7</ITYPE>
<SHDESC>Berger Bullets 22423 Target 22 Caliber .224 90 GR Target Very Low Drag 100 Box </SHDESC>
<UOM>EA</UOM>
<PRC1>34.73</PRC1>
<CPRC>34.04</CPRC>
<QTYOH>26</QTYOH>
<WTPBX>1.400</WTPBX>
<ITUPC>679459224239 </ITUPC>
<MFGINO>22423 </MFGINO>
<SCNAM1>BERG </SCNAM1>
<SCNAM2>B22CAL </SCNAM2>
<CATCD xml:space="preserve"> </CATCD>
<MFPRTYP xml:space="preserve"> </MFPRTYP>
<MFPRC>0.00</MFPRC>
<CATID>36</CATID>
<TXTREF>120</TXTREF>
<PICREF>120</PICREF>
<ITBRDNO>628</ITBRDNO>
<SERIES>Match Grade </SERIES>
<LENGTH>4.1</LENGTH>
<HEIGHT>1.2</HEIGHT>
<WIDTH>3.3</WIDTH>
<HAZAIR xml:space="preserve"> </HAZAIR>
<HAZGRND xml:space="preserve"> </HAZGRND>
<CHGDTE>2018-05-23T00:00:00+00:00</CHGDTE>
<LOADDT>2015-11-05T00:00:00+00:00</LOADDT>
</Table>
</NewDataSet>
</string>
我嘗試了以下方法,但似乎無法按需工作
<?php
$xml=simplexml_load_string($myXMLData);
print_r($xml);
$xml = new SimpleXMLElement($myXMLData);
print_r($xml);
?>
尋找的是獲取響應中每個標簽的值。 任何幫助深表感謝。
您可以利用html_entity_decode
將您的字符串轉換為正確的XML:
$xml = new SimpleXMLElement(html_entity_decode($myXMLData));
print_r($xml);
演示在這里: https : //3v4l.org/AWWEH
您在另一個XML文檔中有一個XML文檔作為文本。 因此,您必須加載外部文檔,獲取文本內容,然后再次將其解析為XML:
$xml = <<<'XML'
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://webservices/api/v1/Inventory.asmx">
<NewDataSet>
<Table>
<ITEMNO>120</ITEMNO>
<IDESC>BERG 22423 BULL .224 90GR VLD TGT 100</IDESC>
</Table>
</NewDataSet>
</string>
XML;
$stringElement = new SimpleXMLELement($xml);
echo $stringElement, "\n";
// force to string and parse as XML
$newDataSet = new SimpleXMLElement((string)$stringElement);
echo $newDataSet->Table->ITEMNO;
輸出:
<NewDataSet>
<Table>
<ITEMNO>120</ITEMNO>
<IDESC>BERG 22423 BULL .224 90GR VLD TGT 100</IDESC>
</Table>
</NewDataSet>
120
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.