2016-12-04 5 views
1

SimpleXMLとDOMDocumentであなたの助けが必要です。私はあなたに私の現在のコードをまくし、その後、私の問題を説明します:xmlタグSimpleXMLとDOM文書

$xml = new SimpleXMLElement('<milu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file://milu.xsd"/>'); 
$dom = dom_import_simplexml($xml); 
$version = $xml->addChild('VERSION', date('m.d.Y')); 

    while ($row= mysql_fetch_assoc($res)) { 


    $bev = $xml->addChild('JUICE'); 
    $bev->addAttribute('ID', $row["id"]); 

     // var_dump($row["name1_german"]); 
     $bev->addChild('01', $row["Value1"]); 
     $bev->addChild('02', $row["Value1"]); 
     $bev->addChild('03', $row["Value1"]); 
     $bev->addChild('04', $row["Value1"]); 
} 


$dom_sxe = dom_import_simplexml($xml); // Returns a DomElement object 

$dom_output = new DOMDocument('1.0'); 
$dom_output->formatOutput = true; 
$dom_sxe = $dom_output->importNode($dom_sxe, true); 
$dom_sxe = $dom_output->appendChild($dom_sxe); 

header('Content-Disposition: attachment; filename="milu.xml"'); 
echo $dom_output->saveXML($dom_output, LIBXML_NOEMPTYTAG); 

生成された.xmlファイルの最初の行の出力がこれです:

<?xml version="1.0" encoding="UTF-8"?> 

は、このことのDOMDocument可能とです表示されていませんか?

そして、私の2番目の質問は、私はこのようなループの周りの子供を望んでいることを、次のとおりです。

<JUICE ID="0000000000"> 
    <CONFIG MODELID="2"> 
    <01>value1</01> 
    <02>value2</02> 
    <03>value3</03> 
    <04>value4</04> 
    </CONFIG> 
</JUICE> 

私を助けてください。

echo $dom_output->saveXML($dom_output->documentElement, LIBXML_NOEMPTYTAG); 

は単に$bevの下に子を追加し、それぞれの番号のノードを割り当て、CONFIG子を追加するには、次のXML宣言タグを削除するには感謝

答えて

0

はrootのみとその子を出力documentElementプロパティを使用しますその子として:

if ($res = $dbconn->query($query)) { 
    while ($row = $res->fetch_assoc()) { 

     $bev = $xml->addChild('JUICE'); 
     $bev->addAttribute('ID', $row["id"]); 

     $config = $bev->addChild('CONFIG'); 
     $config->addAttribute('MODELID', '2'); 

     $config->addChild('01', $row["Value1"]); 
     $config->addChild('02', $row["Value2"]); 
     $config->addChild('03', $row["Value3"]); 
     $config->addChild('04', $row["Value4"]); 
    } 
} 

出力

<milu xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file://milu.xsd"> 
    <VERSION>12.04.2016</VERSION> 
    <JUICE ID="0000000000"> 
    <CONFIG MODELID="2"> 
     <01>value1</01> 
     <02>value2</02> 
     <03>value3</03> 
     <04>value4</04> 
    </CONFIG> 
    </JUICE> 
</milu> 

最後に、mysql_*関数はPHP 5では廃止され、PHP 7では完全に削除されています。mysqliやPDOなどの別のPHP MySQL APIの使用を検討してください。上記はmysqliのフェッチを示しています。

+0

ありがとうございました! – Florian