2012-04-19 3 views
0

안녕하세요. 사람들이 .xml 파일에 새로운 항목을 업로드 할 수있는 양식을 만들기를 고대하고 있습니다. 양식이 문제가되지 않습니다. 문제는 동적 및 정적 항목을 기존 .xml 파일에 추가하는 방법입니다.PHP를 통해 XML에 항목 추가하기

내 XML 파일은 다음과 같습니다 누군가가 샘플이 있다면

<?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> 

좋은 것입니다! :) 감사

UPDATE 해결책

당신은 SimpleXML이 같은 XML 파서/클래스에 빌드 중 하나를 사용할 수 있습니다
<?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") 
    ?> 
+1

먼저 할 일은 대부분의 편안한 느낌 하나를 선택 XML 파일 것을 보장하는 것입니다 잘 형성된다. ;) (닫는 태그 daoc_items에는 열려있는 태그가 없습니다) – Eineki

+0

위 XML 문서의 루트 노드가 유효하지 않습니다. 실제로 작동 할 예제 코드를 입력하십시오. 어떤 요소를 추가하고 싶습니까? [SimpleXML] (http://php.net/manual/en/book.simplexml.php)은 아마도 당신을위한 해결책 일 것이지만 더 자세한 내용이 필요합니다. – DaveRandom

답변

0

:

$filename = 'my_xml_file.xml'; 
$items = simplexml_load_file($filename); 

$items->item[0]->addChild('tagname', 'value'); 
$items->asXML($filename); 

는 당연히 당신이 결정하는 방법을 찾아야 어떤 항목을 자식을 추가 할 것인지 (첫 번째 항목을 가져 오는 $items->item[0] 줄을 확인하십시오).

http://nl.php.net/manual/en/book.simplexml.php에서 문서를 읽고, 또한 특정 DOM에, 다른 XML 조작 클래스를 살펴, 당신은