用 PHP5 轻松解析 XML(7)

     function __construct($rootObject, $pNodeId, $nodeTag, $seq)
     {
         parent::__construct($nodeTag);
         $this->rootObject = $rootObject;
         $this->pNodeId = $pNodeId;
         $this->seq = $seq;
     }

     public function getPNodeObject()
     {
         return ($this->pNodeId==-1)?
         $this->rootObject:
         $this->rootObject->getNodeById($this->pNodeId);
     }

     public function getSeq(){
         return $this->seq;
     }

     public function createNode($name, $attributes)
     {
         return $this->createNodeByName($this->rootObject,
         $name, $attributes,
         $this->getSeq());
     }

     public function removeNode($name)
     {
         return $this->removeNodeByName($this->rootObject, $name);
     }


     public function getNode($name=null)
     {
         return $this->getNodeByName($this->rootObject,
         $name);
     }
 }
?>
 

下面是例子运行对结果

 

下面是通过函数getSaveData()返回的整个xml数据的数组 Array
(
    [name] => 华联
    [address] => 北京长安街-9999号
    [desc] => 连锁超市
    [cat_food] => Array
        (
            [attrs] => Array
                (
                    [id] => food
                )

            [goods_food11] => Array
                (
                    [name] => food11
                    [price] => 12.90
                    [attrs] => Array
                        (
                            [id] => food11
                        )

                )

            [goods_food12] => Array
                (
                    [name] => food12
                    [price] => 22.10
                    [desc] => Array
                        (
                            [value] => 好东西推荐
                            [attrs] => Array
                                (
                                    [creator] => hahawen
                                )

                        )

                    [attrs] => Array
                        (
                            [id] => food12
                        )

                )

        )

    [cat_1] => Array
        (
            [goods_tel21] => Array
                (
                    [name] => tel21
                    [price] => 1290
                    [attrs] => Array
                        (
                            [id] => tel21
                        )

                )

        )

    [cat_coat] => Array
        (
            [attrs] => Array
                (
                    [id] => coat
                )

            [goods_coat31] => Array
                (
                    [name] => coat31
                    [price] => 112
                    [attrs] => Array
                        (
                            [id] => coat31
                        )

                )

            [goods_coat32] => Array
                (
                    [name] => coat32
                    [price] => 45
                    [attrs] => Array
                        (
                            [id] => coat32
                        )

                )

        )

    [special_hot] => Array
        (
            [attrs] => Array
                (
                    [id] => hot
                )

            [goods_0] => Array
                (
                    [name] => hot41
                    [price] => 99
                )

        )

)
下面是通过setValue()函数,给给根节点添加信息,添加后显示出结果xml文件的内容 <?xml version="1.0" encoding="GB2312" ?>
<shop>
<name>华联</name>
<address>北京长安街-9999号</address>
<desc>连锁超市</desc>
<telphone>123456789</telphone>
<cat>
  <goods>
   <name>food11</name>
   <price>12.90</price>
  </goods>
  <goods>
   <name>food12</name>
   <price>22.10</price>
   <desc creator="hahawen">好东西推荐</desc>
  </goods>
</cat>
<cat>
  <goods>
   <name>tel21</name>
   <price>1290</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>coat31</name>
   <price>112</price>
  </goods>
  <goods>
   <name>coat32</name>
   <price>45</price>
  </goods>
</cat>
<special>
  <goods>
   <name>hot41</name>
   <price>99</price>
  </goods>
</special>
</shop> 下面是通过getNode()函数,返回某一个分类下的所有商品的信息 商品名:food11
Array
(
    [name] => food11
    [price] => 12.90
)
Array
(
    [id] => food11
)
商品名:food12
Array
(
    [name] => food12
    [price] => 22.10
    [desc] => Array
        (
            [value] => 好东西推荐
            [attrs] => Array
                (
                    [creator] => hahawen
                )

        )

)
Array
(
    [id] => food12
)
下面是通过findNodeByPath()函数,返回某一商品的信息 商品名:food11
Array
(
    [name] => food11
    [price] => 12.90
)
Array
(
    [id] => food11
)
下面是通过setValue()函数,给商品"food11"添加属性, 然后显示添加后的结果 <?xml version="1.0" encoding="GB2312" ?>
<shop>
<name>华联</name>
<address>北京长安街-9999号</address>
<desc>连锁超市</desc>
<telphone>123456789</telphone>
<cat>
  <goods>
   <name>food11</name>
   <price>12.90</price>
   <leaveword author="hahawen" date="2004-12-05">这个商品不错</leaveword>
  </goods>
  <goods>
   <name>food12</name>
   <price>22.10</price>
   <desc creator="hahawen">好东西推荐</desc>
  </goods>
</cat>
<cat>
  <goods>
   <name>tel21</name>
   <price>1290</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>coat31</name>
   <price>112</price>
  </goods>
  <goods>
   <name>coat32</name>
   <price>45</price>
  </goods>
</cat>
<special>
  <goods>
   <name>hot41</name>
   <price>99</price>
  </goods>
</special>
</shop> 下面是通过removeValue()/removeAttribute()函数,给商品"food11"改变和删除属性, 然后显示操作后的结果 <?xml version="1.0" encoding="GB2312" ?>
<shop>
<name>华联</name>
<address>北京长安街-9999号</address>
<desc>连锁超市</desc>
<telphone>123456789</telphone>
<cat>
  <goods>
   <name>food11</name>
   <price>12.90</price>
   <leaveword author="hahawen" date="2004-12-05">这个商品不错</leaveword>
  </goods>
  <goods>
   <name>new food12</name>
   <price>22.10</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>tel21</name>
   <price>1290</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>coat31</name>
   <price>112</price>
  </goods>
  <goods>
   <name>coat32</name>
   <price>45</price>
  </goods>
</cat>
<special>
  <goods>
   <name>hot41</name>
   <price>99</price>
  </goods>
</special>
</shop> 下面是通过createNode()函数,添加商品, 然后显示添加后的结果 <?xml version="1.0" encoding="GB2312" ?>
<shop>
<name>华联</name>
<address>北京长安街-9999号</address>
<desc>连锁超市</desc>
<telphone>123456789</telphone>
<cat>
  <goods>
   <name>food11</name>
   <price>12.90</price>
   <leaveword author="hahawen" date="2004-12-05">这个商品不错</leaveword>
  </goods>
  <goods>
   <name>new food12</name>
   <price>22.10</price>
  </goods>
  <goods>
   <name>food13</name>
   <price>100</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>tel21</name>
   <price>1290</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>coat31</name>
   <price>112</price>
  </goods>
  <goods>
   <name>coat32</name>
   <price>45</price>
  </goods>
</cat>
<special>
  <goods>
   <name>hot41</name>
   <price>99</price>
  </goods>
</special>
</shop> 下面是通过removeNode()函数,删除商品, 然后显示删除后的结果 <?xml version="1.0" encoding="GB2312" ?>
<shop>
<name>华联</name>
<address>北京长安街-9999号</address>
<desc>连锁超市</desc>
<telphone>123456789</telphone>
<cat>
  <goods>
   <name>food11</name>
   <price>12.90</price>
   <leaveword author="hahawen" date="2004-12-05">这个商品不错</leaveword>
  </goods>
  <goods>
   <name>food13</name>
   <price>100</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>tel21</name>
   <price>1290</price>
  </goods>
</cat>
<cat>
  <goods>
   <name>coat31</name>
   <price>112</price>
  </goods>
  <goods>
   <name>coat32</name>
   <price>45</price>
  </goods>
</cat>
<special>
  <goods>
   <name>hot41</name>
   <price>99</price>
  </goods>
</special>
</shop>

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3453d9ab26a2444cbe11eab65ea43358.html