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>
вот листинг скрипта
Есть 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');
}
?>