0

私はPHPDOMを使用してxmlファイル(サードパーティのxmlファイル)を作成および保存してきました。これまでのところ、構造は正しいのですが、要素が終了タグで閉じられないという問題に遭遇しました。

<FX>
 <Stompbox ID="1">
  <Module ID="0" POS="0" BypassState="1"/>
 </Stompbox>
</FX>

次のようになります-モジュール終了タグ

<FX>
 <Stompbox ID="1">
  <Module ID="0" POS="0" BypassState="1"></Module>
 </Stompbox>
</FX>

これがコードです

$xmlRoot = $domtree->appendChild($xmlRoot); 
    /* Add FX node */
$fx = $domtree->createElement("FX");
$fx = $xmlRoot->appendChild($fx);
    /* Add Stompbox node */
$fx->appendChild($stompbox = $domtree->createElement('Stompbox')); 

$attr_mod = new DOMAttr('ID', "1");
$stompbox->setAttributeNode($attr_mod);
$stompbox->appendChild($module = $domtree->createElement('Module'));

$attr_mod = new DOMAttr('ID', "0");
$module->setAttributeNode($attr_mod);
$attr_pos = new DOMAttr('POS', '0'); 
$module->setAttributeNode($attr_pos); 
$attr_bypass_state = new DOMAttr('BypassState', '1'); 
$module->setAttributeNode($attr_bypass_state);

ご協力いただきありがとうございます。

4

1 に答える 1

2

要素は閉じています。XML で要素を閉じるには、次の 2 つの方法があります。

自己閉鎖によって:

 <someelement someattr="somevalue" />

または空のインナーで:

 <someelement someattr="somevalue"></someelement>

これらは意味的に同一であり、多くの実装では前者を選択します。これは、ファイルが小さく読みやすいためです。

于 2012-11-05T17:03:10.270 に答える