记载一个phper的历程!http://phperwuhan.blog.phpchina.com

DOM Functions例子

上一篇 / 下一篇  2008-01-30 15:37:09 / 个人分类:php

来源:http://phpeye.com/bbs/redirect.php?fid=10&tid=202&goto=nextoldset

请问几个DOM Functions按属性操作XML的问题

XML文件为Client.xml,内容如下

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Client [
<!ELEMENT  Client (Accounts)*>
<!ELEMENT Accounts (Group,Tag)>
<!ATTLIST Accounts Id  ID  #REQUIRED>
<!ELEMENT Group (#PCDATA)>
<!ELEMENT Tag (#PCDATA)>
]>
<Client>
    <Accounts Id="A1">
        <Group>0</Group>
        <Tag>自定义名称1</Tag>
    </Accounts>     
    <Accounts Id="A2">
         <Group>0</Group>
         <Tag>自定义名称2</Tag>
    </Accounts>     
</Client>

问题如下:
1.怎么按以上规则增加一个Accounts 元素,设定属性Id="A3",Group子元素值为“1”,Tag子元素值为“自定义名称3”;
2.怎么删除属性为Id="A2" 的 Accounts 元素;
3.怎么分别修改属性为Id="A2" 的 Accounts 元素下的Group和Tag元素的值。
谢谢回复~~~~~~谢谢了!
 
 
 
 
 
PHP代码如下:
$domDoc DOMDocument::loadXML($xml);
$rootNode $domDoc->getElementsByTagName('Client')->item(0);

// 1.
$accounts $domDoc->createElement('Accounts');
$accounts->setAttribute('Id''A3');
$group $domDoc->createElement('Group''1');
$tag $domDoc->createElement('Tag''自定义名称3');
$accounts->appendChild($group);
$accounts->appendChild($tag);
$rootNode->appendChild($accounts);

echo 
$domDoc->validate(), "\n";
echo 
$domDoc->saveXML();

// 3.
$A2 $domDoc->getElementById('A2');
$A2->replaceChild(
  
$domDoc->createElement('Group''100'),
  
$A2->getElementsByTagName('Group')->item(0)
);
$A2->replaceChild(
  
$domDoc->createElement('Tag''自定义名称200'),
  
$A2->getElementsByTagName('Tag')->item(0)
);

echo 
$domDoc->validate(), "\n";
echo 
$domDoc->saveXML();

// 2.
$rootNode->removeChild($A2);

echo 
$domDoc->validate(), "\n";
echo 
$domDoc->saveXML();


这些问题太基础, 我几乎是在背手册. 建议把手册中 XXX. DOM Functions 一章读熟


TAG: php

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar