首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP搜索和替换XML

PHP搜索和替换XML
EN

Stack Overflow用户
提问于 2016-11-28 21:57:05
回答 2查看 670关注 0票数 0

我有这个XML代码,我想搜索并替换为PHPin标签价格,我想删除点,结果是9600,00。

有什么想法吗?

代码语言:javascript
复制
<AUCTION>
<UNIQUEID>36048</UNIQUEID>
<TITLE>UPS APC SMartUPS 20kVA SUVT20KH4B4S</TITLE>
<DESCRIPTION>UPS-uri &amp; Stabilizatoare &gt; UPS-uri ReconditionateUPS APC SMartUPS 20kVA SUVT20KH4B4SPretul afisat este fara BateriiAn de fabricatie 2006Functioneaza cu 128 acumulatori de 12V 7AEste inclus in pret modulul de bypassAPC Smart-UPS VT SUVT20KH4B4S 20 kVAInput400V 3PH / Output400V 3PH Interface Port DB-9 RS-232, Smart-Slot Extended runtime model.. Model : cu managment   Dimensiuni : 1499 x 559 x 813 mm, Greutate : 600 Kg, Putere : 20000 Va</DESCRIPTION>
<PRICE>9.600,00</PRICE>
<CURRENCY>RON</CURRENCY>

<CATEGORY>UPS-uri &amp; Stabilizatoare &gt; UPS-uri Reconditionate</CATEGORY>


<AMOUNT>0</AMOUNT>
<PHOTOS><URL>https://shoplaptop.ro/image/data/poze_VM/20130709_154155_51DCA400_5377F800.jpg</URL></PHOTOS>
<WARRANTY>1</WARRANTY>
<STATE>2</STATE>
</AUCTION>
EN

回答 2

Stack Overflow用户

发布于 2016-11-28 23:05:09

您可以尝试以下代码:

代码语言:javascript
复制
$xml_data = simplexml_load_file('data.xml');
$xml_data->PRICE = str_replace('.', '', $xml_data->PRICE);

代码语言:javascript
复制
$xml_data = simplexml_load_file('data.xml');
$xml_data = json_decode(json_encode($xml_data), true);
$xml_data['PRICE'] = str_replace('.', '', $xml_data['PRICE']);

如果您有多个AUCTION标签,则可以使用以下代码:

代码语言:javascript
复制
$xml_data = simplexml_load_file('data.xml');
$xml_data = json_decode(json_encode($xml_data), true);
foreach($xml_data as &$xml_data_value) {
    $xml_data_value['PRICE'] = str_replace('.', '', $xml_data_value['PRICE']);
}

它起作用了。

票数 0
EN

Stack Overflow用户

发布于 2016-11-28 22:21:55

一个简单的例子是使用preg_replace_callback

考虑一下包含XML的$str

代码语言:javascript
复制
$str = <<<S
<AUCTION>
<UNIQUEID>36048</UNIQUEID>
<TITLE>UPS APC SMartUPS 20kVA SUVT20KH4B4S</TITLE>
<DESCRIPTION>UPS-uri &amp; Stabilizatoare &gt; UPS-uri ReconditionateUPS APC SMartUPS 20kVA SUVT20KH4B4SPretul afisat este fara BateriiAn de fabricatie 2006Functioneaza cu 128 acumulatori de 12V 7AEste inclus in pret modulul de bypassAPC Smart-UPS VT SUVT20KH4B4S 20 kVAInput400V 3PH / Output400V 3PH Interface Port DB-9 RS-232, Smart-Slot Extended runtime model.. Model : cu managment   Dimensiuni : 1499 x 559 x 813 mm, Greutate : 600 Kg, Putere : 20000 Va</DESCRIPTION>
<PRICE>9.600,00</PRICE>
<CURRENCY>RON</CURRENCY>

<CATEGORY>UPS-uri &amp; Stabilizatoare &gt; UPS-uri Reconditionate</CATEGORY>


<AMOUNT>0</AMOUNT>
<PHOTOS><URL>https://shoplaptop.ro/image/data/poze_VM/20130709_154155_51DCA400_5377F800.jpg</URL></PHOTOS>
<WARRANTY>1</WARRANTY>
<STATE>2</STATE>
</AUCTION>
S;

$str = preg_replace_callback('@<(price)>(.*?)</\1>@im', function($res) {
    return str_replace('.', '', $res[0]);
}, $str);

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

https://stackoverflow.com/questions/40846065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档