我收到了一個非常奇怪的XML文件來處理。使用PHP SimpleXML獲取下一個元素
相反分組與組標籤名稱,象這樣的:
<data>
<group>
<name>John</name>
<name>Mary</name>
<name>Susan</name>
</group>
<group>
<name>Cesar</name>
<name>Joseph</name>
<name>Sylvia</name>
<name>Steve</name>
</group>
</data>
它插入隔板標籤中的每個元素之後,這樣的:
<data>
<name>John</name>
<separator>,</separator>
<name>Mary</name>
<separator>,</separator>
<name>Susan</name>
<separator>;</separator>
<name>Cesar</name>
<separator>,</separator>
<name>Joseph</name>
<separator>,</separator>
<name>Sylvia</name>
<separator>,</separator>
<name>Steve</name>
<separator>.</separator>
</data>
「;」和「。」是小組分隔符。 (我知道,這是不可思議的,但我不能改變的,我必須處理大量的這些文件)
要獲得所有的名字和所有的分隔符,我可以使用下面的代碼:
$data = <<<XML
<data>
<name>John</name>
<separator>,</separator>
<name>Mary</name>
<separator>,</separator>
<name>Susan</name>
<separator>;</separator>
<name>Cesar</name>
<separator>,</separator>
<name>Joseph</name>
<separator>,</separator>
<name>Sylvia</name>
<separator>,</separator>
<name>Steve</name>
<separator>.</separator>
</data>
XML;
$xml = simplexml_load_string($data);
foreach ($xml->name as $name){
echo "$name\n";
}
foreach ($xml->separator as $sep){
echo "$sep\n";
}
但這樣,我無法在單個循環中獲得名稱和相應的分隔符。
有沒有什麼辦法在第一個循環中知道每個名字的下一個元素?
這是一個好問的問題 – hek2mgl