我有三个xml文件,我想用 simplexml_load_string 函数加载到我的php文件中。
我怎样才能做到这一点?
@扬亨克:
以下是我在评论中写的内容:
这就是我现在所拥有的,它在一个xml文件中搜索员工Jane:
$result = simplexml_load_file('employees1.xml');
echo "<strong>Matching employees with name 'Jane'</strong><br />";
$employees = $result->xpath('/employees/employee[name="Jane"]');
foreach($employees as $employee) {
echo "Found {$employee->name}<br />";
}
echo "<br />";
三个xml文件的外观如何?而不是像上面那样搜索员工Jane。它应该在三个文件中搜索重复项。因此,如果员工在三个文件中的任何一个中列出两次。它应该回归:“找到简”。
答案 0 :(得分:1)
分别加载所有3个文件:
$xmlOne = simplexml_load_file('path/to/file1.xml');
$xmlTwo = simplexml_load_file('path/to/file2.xml');
$xmlThree = simplexml_load_file('path/to/file3.xml');
如果你真的想使用simplexml_load_string而不是simplexml_load_file,你可以这样做:
$xmlOne = simplexml_load_string(file_get_contents('path/to/file1.xml'));
回答你问题中的编辑,这只适用于名字Jane:
$files = array('employees1.xml', 'employees2.xml', 'employees3.xml');
$xpathQuery = '/employees/employee[name="Jane"]';
$count = 0;
foreach ($files as $file) {
$xml = simplexml_load_file($file);
$result = $xml->xpath($xpathQuery);
if (count($result) > 0) {
$count++;
}
}
if ($count > 1) {
echo "Duplicates for Jane";
} else {
echo "No duplicates for Jane";
}