通过PHP在XML中添加条目
嗨,我期待着创建一个表单,让人们上传新的条目到一个.xml文件。 表单不是问题,对我来说,问题在于如何将新条目(动态和静态)添加到现有的.xml文件中 我的XML文件如下所示:通过PHP在XML中添加条目,php,xml,Php,Xml,嗨,我期待着创建一个表单,让人们上传新的条目到一个.xml文件。 表单不是问题,对我来说,问题在于如何将新条目(动态和静态)添加到现有的.xml文件中 我的XML文件如下所示: <?xml version="1.0" encoding="ISO-8859-1" ?> <item><provider>Fabian</provider> <provider_itemid>1</provider_itemid> <name&
<?xml version="1.0" encoding="ISO-8859-1" ?>
<item><provider>Fabian</provider>
<provider_itemid>1</provider_itemid>
<name>Robe der Regalia</name>
<origin>Art: Drop</origin>
<description>Mindest-Stufe: Keine</description>
<extension>CLASSIC</extension>
<position>CHEST</position>
<online_url>www.google.me</online_url>
<lastupdate>28.03.2008 09:58:20</lastupdate>
<realm>Hibernia</realm>
<level>30</level>
<quality>95</quality>
<bonus>20</bonus>
<armor af="30">CLOTH</armor>
<effect id="HITPOINTS">27</effect>
<effect id="ENCHANTMENTS">2</effect>
<effect id="MENTALISM">2</effect>
<effect id="VOID">2</effect>
</item>
</daoc_items>
费边
1.
御袍
艺术:下降
明德斯特·斯图夫:基恩
经典
胸膛
www.google.me
28.03.2008 09:58:20
希伯尼亚
30
95
20
布
27
2.
2.
2.
如果有人有样品就好了!:)
谢谢
更新解决方案
<?php
$daoc_items = array();
$daoc_items [] = array(
'name' => 'Skyros-Hammer aus Arkanit',
'extensions' => 'test',
'description' => 'test',
'realm' => 'Midgard',
'level' => 'Midgard',
'quality' => "99",
'bonus' => "99",
'position' => "99",
'weapon' => "99",
'effect' => "99",
'origin' => "99",
);
$daoc_items [] = array(
'name' => 'Skyros-Hammer aus Arkanit',
'extensions' => 'test',
'description' => 'test',
'realm' => 'Midgard',
'level' => 'Midgard',
'quality' => "99",
'bonus' => "99",
'position' => "99",
'weapon' => "99",
'effect' => "99",
'origin' => "99",
);
$doc = new DOMDocument();
$doc->formatOutput = true;
$r = $doc->createElement( "daoc_items" );
$doc->appendChild( $r );
foreach( $daoc_items as $item )
{
$b = $doc->createElement( "item" );
$name = $doc->createElement( "name" );
$name->appendChild(
$doc->createTextNode( $item['name'] )
);
$b->appendChild( $name );
$extensions = $doc->createElement( "extensions" );
$extensions->appendChild(
$doc->createTextNode( $item['extensions'] )
);
$b->appendChild( $extensions );
$description = $doc->createElement( "description" );
$description->appendChild(
$doc->createTextNode( $item['description'] )
);
$b->appendChild( $description );
$realm = $doc->createElement( "realm" );
$realm->appendChild(
$doc->createTextNode( $item['realm'] )
);
$b->appendChild( $realm );
$level = $doc->createElement( "level" );
$level->appendChild(
$doc->createTextNode( $item['level'] )
);
$b->appendChild( $level );
$quality= $doc->createElement( "quality" );
$quality->appendChild(
$doc->createTextNode( $item['quality'] )
);
$b->appendChild( $quality);
$bonus= $doc->createElement( "bonus" );
$bonus->appendChild(
$doc->createTextNode( $item['bonus'] )
);
$b->appendChild( $bonus);
$position= $doc->createElement( "position" );
$position->appendChild(
$doc->createTextNode( $item['position'] )
);
$b->appendChild( $position);
$weapon= $doc->createElement( "weapon" );
$weapon->appendChild(
$doc->createTextNode( $item['weapon'] )
);
$b->appendChild( $weapon);
$effect= $doc->createElement( "effect" );
$effect->appendChild(
$doc->createTextNode( $item['effect'] )
);
$b->appendChild( $effect);
$origin= $doc->createElement( "origin" );
$origin->appendChild(
$doc->createTextNode( $item['origin'] )
);
$b->appendChild( $origin);
$r->appendChild( $b );
}
echo $doc->saveXML();
$doc->save("item.xml")
?>
您可以使用一个内置xml解析器/类,如simplexml:
$filename = 'my_xml_file.xml';
$items = simplexml_load_file($filename);
$items->item[0]->addChild('tagname', 'value');
$items->asXML($filename);
当然,您必须找到一种方法来确定要将子项添加到哪个项目中(请检查显示$items->item[0]
的行,该行现在只获取第一个项目)
阅读上的文档,并查看其他xml操作类,特别是DOM,然后选择您最熟悉的一个首先要做的是确保xml文件格式正确。;)(结束标记daoc_items没有相应的打开标记)上述XML文档的根节点无效,请提供实际工作的示例代码。您希望在文档中的何处添加哪些元素?可能是您的解决方案,但我们需要更多细节。