0

xml ドキュメントの例があり、php で同じ xml を作成しようとしています。

これは xml ドキュメントの例の一部です (Web ブラウザーで開いた場合に表示されます)。

-<DeclarationFile>
  -<Declaration Id="DEC">
    -<DokPVNv4>

同じものを作成する必要があります。私のphpコード

$DOM = new DOMDocument('1.0','UTF-8');

$root = $DOM->createElement('DeclarationFile');
$DOM->appendChild($root);

$child_declaration_id = $DOM->createElement('Declaration');
$root->appendChild($child_declaration_id);

$child_declaration_id_att = $DOM->createAttribute('Id');
$child_declaration_id->appendChild($child_declaration_id_att);

$att_child_declaration_id_text = $DOM->createTextNode('DEC');
$child_declaration_id_att->appendChild($att_child_declaration_id_text);

$DokPVNv4 = $DOM->createElement('DokPVNv4');
$root->appendChild($DokPVNv4);

出力(Webブラウザ)でこれを取得

-<DeclarationFile>
  <Declaration Id="DEC"/>
  <DokPVNv4/>
 </DeclarationFile>
  1. xml の例では、-before<Declaration Id="DEC"><DokPVNv4>. 私のphpコードにはありません。これらは何を意味し-、どのようにphpで作成するのですか?

  2. xml の例では<Declaration Id="DEC"><DokPVNv4>はありません/。私のコードでは、/. それらを削除する方法 (およびこれらの/意味)?

すべての違いはルート要素に関連していると思いますか?

アップデート。答えから現時点で理解できること:一部の要素/タグに終了タグがない場合、要素は で終わり/ます。そして- +、はい、ブラウザがそれらを作成します。

4

2 に答える 2

2

それ-はおそらく、これらの要素を開いたり閉じたりできる+/ボタンで描画されたブラウザです。-はXML 仕様/>必須です。どちらのタグもコンテナです。

<foo>
   ...
</foo>

または、それらはシングルトン タグであり、その場合、自己終了する必要があります。

<bar />

あなたのコードはそれらを明示的に追加しませんが、それらは xml で必須であるため、DOM システムがそれらを追加しています。

于 2013-08-02T17:40:05.077 に答える
1

あなたのコードは、間違った入れ子で要素を作成します。これを変更してみてください

$root->appendChild($DokPVNv4);

これに

 $child_declaration_id->appendChild($DokPVNv4);
于 2013-08-02T17:47:35.973 に答える