PHP xml-将多个文件连接在一个文件中
我有4个xml文件,我想用每个文件的内容创建一个唯一的文件,第一行和最后一行除外 详情: 我的xml文件:PHP xml-将多个文件连接在一个文件中,php,xml,Php,Xml,我有4个xml文件,我想用每个文件的内容创建一个唯一的文件,第一行和最后一行除外 详情: 我的xml文件: <?xml version="1.0"?> <Clients xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Client> <client_id>123458</client_id> <client_type>People</
<?xml version="1.0"?>
<Clients xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Client>
<client_id>123458</client_id>
<client_type>People</client_type>
<client_sub_type>Sub people</client_sub_type>
<name>Alerich</name>
<surname>Higor</surname>
</Client>
<Client>
<client_id>5487</client_id>
<client_type>People</client_type>
<client_sub_type>Sub people</client_sub_type>
<name>Newman</name>
<surname>Matew</surname>
</Client>
</Clients>
123458
人
子民
阿莱里奇
希戈尔
5487
人
子民
纽曼
配偶
1.xml、2.xml、3.xml和4.xml的内容如下
我想创建一个最终的.xml文件,它以
<?xml version="1.0"?>
<Clients xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
以:
</Clients>
在这些行之间,我想要第四个文件的所有行
你有一些建议吗
谢谢。使用
fgets
读取文件,并使用preg\u match
检查xml或客户端标记。如果该行不匹配,请将该行写入新文件。当然,您必须在新文件周围放置一个新的xml和客户端标记。使用fgets
读取文件,并使用preg\u match
检查xml或客户端标记。如果该行不匹配,请将该行写入新文件。当然,您必须在新文件周围放置一个新的xml和客户端标记。您可以使用PHP DOM函数来实现这一点:
$d1 = new DOMDocument();
$d1->load('1.xml');
$root = $d1->getElementsByTagName('Clients')->item(0);
// List of other xml files
$files = array('2.xml', '3.xml', '4.xml');
foreach($files as $file) {
$d2 = new DOMDocument();
$d2->load($file);
foreach($d2->getElementsByTagName('Client') as $elem) {
$newNode = $d1->importNode($elem, true);
$root->appendChild($newNode);
}
}
$d1->saveXMLFile('newfile.xml'));
一般提示:不要对XML文件中的换行符做任何假设所以“文件的前两行和最后一行”的前提可能是错误的。使用XML函数而不是字符串函数可以避免这些问题。您可以使用PHP DOM函数来实现这一点:
$d1 = new DOMDocument();
$d1->load('1.xml');
$root = $d1->getElementsByTagName('Clients')->item(0);
// List of other xml files
$files = array('2.xml', '3.xml', '4.xml');
foreach($files as $file) {
$d2 = new DOMDocument();
$d2->load($file);
foreach($d2->getElementsByTagName('Client') as $elem) {
$newNode = $d1->importNode($elem, true);
$root->appendChild($newNode);
}
}
$d1->saveXMLFile('newfile.xml'));
一般提示:不要对XML文件中的换行符做任何假设所以“文件的前两行和最后一行”的前提可能是错误的。使用XML函数而不是字符串函数可以避免这些问题