Php 如何根据预设参数查找和替换XML中的值
请告知。我有需要通过php更正的XML XML示例Php 如何根据预设参数查找和替换XML中的值,php,xml-parsing,Php,Xml Parsing,请告知。我有需要通过php更正的XML XML示例 <?xml version="1.0"?> <csv_data> <row> <articul>1107134</articul> <type>car tires</type> <brand>Aeolus</brand> <name>Aeolus AL01 Trans Ace 195/75 R1
<?xml version="1.0"?>
<csv_data>
<row>
<articul>1107134</articul>
<type>car tires</type>
<brand>Aeolus</brand>
<name>Aeolus AL01 Trans Ace 195/75 R16C 107/105R</name>
<season>summer</season>
</row>
<row>
<articul>1107134</articul>
<type>car tires</type>
<brand>Aeolus</brand>
<name>Aeolus AL01 Trans Ace 195/75 R16 107/105R</name>
<season>summer</season>
</row>
</csv_data>
$dom->getElementsByTagName('row')代码>
[A-Z]{1}\d{2}C
与行内的节点值
匹配,则轮胎为新轮胎
行的子节点
,直到找到localName
=类型
子节点
节点值
更改为新节点+现有节点$dom->getElementsByTagName('row')代码>
[A-Z]{1}\d{2}C
与行内的节点值
匹配,则轮胎为新轮胎
行的子节点
,直到找到localName
=类型
子节点
节点值
更改为新节点+现有节点在使用SimpleXML时,您不需要担心DOM操作,可以将XML对象视为StdClass:
$filename = "./mos-test2.xml";
$data = simplexml_load_file($filename);
foreach ($data as $row) {
if (preg_match("/R\d{2}C/", $row->name) === 1) {
$row->type = 'new ' . $row->type;
}
}
$str = $data->asXML();
正如名字中所说,SimpleXml使事情变得简单。当您使用SimpleXml时,您不需要担心DOM操作,并且可以将XML对象视为StdClass:
$filename = "./mos-test2.xml";
$data = simplexml_load_file($filename);
foreach ($data as $row) {
if (preg_match("/R\d{2}C/", $row->name) === 1) {
$row->type = 'new ' . $row->type;
}
}
$str = $data->asXML();
正如名字中所说,SimpleXml使事情变得简单。感谢大家
这个代码对我有用
<?
$dom = new DOMDocument();
$dom->loadXML(file_get_contents("./mos-test2.xml"));
$rows = $dom->getElementsByTagName('row');
foreach($rows as $row){
if (preg_match('/[A-Z]{1}\d{2}C/', $row->nodeValue)){
foreach($row->childNodes as $child) {
if($child->localName == "type"){
$child->nodeValue = "Легкогрузовые";
}
}
}
}
$dom->encoding = 'UTF-8';
$dom->save("./mos-test-ready.xml")
?>
谢谢大家
这个代码对我有用
<?
$dom = new DOMDocument();
$dom->loadXML(file_get_contents("./mos-test2.xml"));
$rows = $dom->getElementsByTagName('row');
foreach($rows as $row){
if (preg_match('/[A-Z]{1}\d{2}C/', $row->nodeValue)){
foreach($row->childNodes as $child) {
if($child->localName == "type"){
$child->nodeValue = "Легкогрузовые";
}
}
}
}
$dom->encoding = 'UTF-8';
$dom->save("./mos-test-ready.xml")
?>
我发布了一个答案,但它没有涵盖你问题的符号C`部分,我将在bit中更新它。我发布了一个答案,但它没有涵盖你问题的符号C`部分,我将在稍后更新它