2011-10-25 40 views
0

我有我想要加載與simplexml_load_string功能我的PHP文件中的三個XML文件。如何使用simplexml_load_string將多個XML文件加載到一個字符串中?

我該如何做到這一點?

@揚亨克:

這是我在評論中寫道:

這是我的那一刻,它會搜索員工簡一個XML文件:

$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')); 

回答你的問題,它不僅作品編輯爲簡名:

$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"; 
} 
+0

無論我使用哪一個,simplexml_load_string還是simplexml_load_file?該php文件應該加載三個xml文件。然後即時通訊使用此[指南](http://www.tuxradar.com/practicalphp/12/3/3)篩選所有三個文件的結果。 – Dreni

+0

simplexml_load_file一次做所有事情,所以這樣做更簡單。至於處理所有三個文件,您可以簡單地執行您想針對所有三個變量運行的代碼。 –

+0

我現在編輯了我的問題。在此先感謝 – Dreni

相關問題