Как на php добавить запись в XML

boris@phpclub

Новичок
Как на php добавить запись в XML

Есть XML-файл с исходной структурой, в которую мне для каждой четвертой записи надо вставить дополнительный тег <keyword>MySelected</keyword> после строчки <keyword>Treatment Outcome</keyword>, выделенной в листинге. Как это сделать на php? Пытаюсь с simplexml но не получается, вставляется новая запись не меджу тегами <keywords>, а только в конце файла.
Заранее спасибо за помощь.

Вот листинг XML-файла


<?xml version="1.0" encoding="UTF-8" ?>
<xml>
<records>
<record>
<titles>
<title>Idiopathic membranous nephropathy: diagnosis and treatment</title>
<secondary-title>Clin J Am Soc Nephrol</secondary-title>
</titles>
<periodical>
<full-title>Clin J Am Soc Nephrol</full-title>
</periodical>
<pages>905-19</pages>
<volume>3</volume>
<number>3</number>
<edition>2008/02/01</edition>
<keywords>
<keyword>Adult</keyword>
<keyword>Algorithms</keyword>
<keyword>Angiotensin II Type 1 Receptor Blockers/ therapeutic use</keyword>
<keyword>Angiotensin-Converting Enzyme Inhibitors/ therapeutic use</keyword>
<keyword>Biopsy</keyword>
<keyword>Diuretics/ therapeutic use</keyword>
<keyword>Drug Therapy, Combination</keyword>
<keyword>Glomerulonephritis, Membranous/complications/ diagnosis/ drug therapy</keyword>
<keyword>Humans</keyword>
<keyword>Immunosuppressive Agents/ therapeutic use</keyword>
<keyword>Kidney Glomerulus/ pathology</keyword>
<keyword>Male</keyword>
<keyword>Patient Selection</keyword>
<keyword>Proteinuria/drug therapy/ etiology/pathology</keyword>
<keyword>Treatment Outcome</keyword>
</keywords>
...
</record>
<record>
...
</record>
</records>
</xml>


вот листинг скрипта

PHP:
<?

$pathtoxmlfile = "C:\\xampp\\htdocs\\6records.xml";
$pathtoresultfile = "C:\\xampp\\htdocs\\1reference_edited.xml";

if (file_exists($pathtoxmlfile)) {
    $xml = simplexml_load_file($pathtoxmlfile);
	
$item = $xml->records->record[0]->keywords->keyword;

$xml->addchild('keyword', 'NewMy', $item);

 print("<pre>");
    print_r($xml);
 print("</pre>");
 
 $xml->asXML($pathtoresultfile);

} else {
    exit('Failed to open $pathtoxmlfile');
}

?>
 

FB3

Новичок
XML сам по себе такой формат, что в нем не делается различий между порядком следования нод.
В принципе, это можно реализовать с помощью DOM:
http://ru2.php.net/manual/ru/domnode.insertbefore.php
 
Сверху