5

私はXML:LibXMLPerlでプロジェクトに使用することを学んでいて、この例を見ました。

目標は、このXMLファイルを作成することです。

<?xml version="1.0" encoding="utf-8"?>
<assets xmlns="http://bricolage.sourceforge.net/assets.xsd">
  <story id="1234" type="story">
    <name>Catch as Catch Can</name>
  </story>
</assets>

作者は以下addChildを作成するために使用します:storyassets

my $story = $dom->createElement('story');

次に、(と組み合わせて)使用して、次の属性を指定します。addChildcreateAttributestory

$story->addChild( $dom->createAttribute( id => 1234));

上記のXMLの例を(XMLについてあまり知らずに)見ると、ストーリーのid="1234"はなく、その属性であるため、この最後の行でaddChildを使用するのはなぜですか?

4

3 に答える 3

3

属性は子の一種です。

于 2012-09-10T19:21:09.197 に答える
2

createAttributeまたはを呼び出すことによりcreateElement、新しいノードを作成します。を呼び出すことによりaddChild、そのようなノードをその親に接続します。XMLには、要素、属性だけでなく、テキスト、コメント、または処理命令など、いくつかのタイプのノードがあります。

于 2012-09-10T19:21:18.223 に答える
1

$storyXML::LibXML :: Elementであるため、次のsetAttributeメソッドを使用する方が自然な場合があります。

my $store = $dom->createElement('story');
$store->setAttribute(id => '1234');

これは、実行しているコードの長createAttributeさの省略形です。addChild

于 2012-09-10T19:27:13.310 に答える