【问题标题】:How to extract value from xml to php [closed]如何将值从 xml 提取到 php [关闭]
【发布时间】:2019-02-24 10:54:44
【问题描述】:
<?xml version="1.0"?>
<ABCD xmlns="http://abcd.com">
<PRODUCT xmlns="">
 <CNHEADER>
  <CNTRACK>true</CNTRACK>
  <FIELD name="PRODUCTNO" value="BK201122"/>
  <FIELD name="ProductType" value="DP"/>
  <FIELD name="strProdCode" value="NL1754"/>

这里我要的是 PRODUCTNO 的值等等。

我试过了,但仍然没有得到任何输出

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_URL, $url); // get the url contents 

$data = curl_exec($ch); // execute curl request 

curl_close($ch); 

$xml = simplexml_load_string($data); 

echo $value = (string) $xml->FIELD[0]->attributes()->name; 

【问题讨论】:

  • 你好 Ravi,你应该看看 XML Parser 实用程序(如 SimpleXML):php.net/manual/fr/simplexml.examples-basic.php
  • 请在发帖前做一些适当的研究和尝试。有很多关于使用 PHP 阅读 XML 的指南(以及这里的 SO)。首先尝试其中任何一个。如果您仍然无法使其正常工作,欢迎您回来向我们展示您的尝试,解释您遇到的问题,我们可以从那里帮助您,但我们不会为您编写所有内容。
  • 您只是在索要代码,而 SO 不是免费的编码服务。您应该编写自己的代码。如果您在现有代码中遇到特定问题,我们可以为您提供帮助。请访问the help center 并阅读指南。
  • 你读过@Tom Udding 发表的评论吗?所以尝试该解决方案,然后询问您是否有一些错误

标签: php xml


【解决方案1】:

使用SimpleXMLElement()你可以从xml字符串中获取你的产品数据; ref

// Your xml string
$xmlString = '<?xml version="1.0"?>
<ABCD xmlns="http://abcd.com">
<PRODUCT xmlns="">
 <CNHEADER>
  <CNTRACK>true</CNTRACK>
  <FIELD name="PRODUCTNO" value="Z41346020"/>
  <FIELD name="ProductType" value="DP"/>
  <FIELD name="strProdCode" value="NL1754"/>
 </CNHEADER>
</PRODUCT>
</ABCD>';

$xmlData = new SimpleXMLElement($xmlString);

$productData = [];
foreach ($xmlData->PRODUCT->CNHEADER->FIELD as $productField) {
    $productData[(string)$productField{'name'}] = (string)$productField{'value'};
}

echo "<pre>";
print_r($productData);
exit;

你会得到以下输出

// Output
Array
(
    [PRODUCTNO] => Z41346020
    [ProductType] => DP
    [strProdCode] => NL1754
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 2017-01-08
    • 2012-09-13
    • 2014-06-23
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多