关于XML的问题

hanly2008 2005-03-14 05:23:05
如何用Delphi的TXMLDocument控制件来修改、删除、添加XML文件中的值?
我的XML文件结构如下:
<?xml version="1.0" encoding="GB2312" ?>
<ROWDATA>
<ROW>
<NAME>模版一</NAME>
<SQL1>
select * from table_1 where dwdm = ? group by dwdm 1
</SQL1>
<SQL2>
select * from table_1 where dwdm = ?
</SQL2>
</ROW>
<ROW>
<NAME>模版二</NAME>
<SQL1>
select * from table_2
where dwdm = ? group by dwdm 2
</SQL1>
<SQL2>
select * from table_2 where dwdm = ?
</SQL2>
</ROW>
<ROW>
<NAME>模版三</NAME>
<SQL1>
select * from table_3 where dwdm = ? group by dwdm 3
</SQL1>
<SQL2>
select * from table_3 where dwdm = ?
</SQL2>
</ROW>
</ROWDATA>
我现在有如下几个问题:
<用"NAME"来定位>
1、如何修改NAME=“模版三”的SQL2的值?
2、如何删除NAME=“模版三”的所有值(包括"NAME","SQL1","SQL2"三个字段值)?
3、如何往该XML文件中,添加一个新的“模版四”的值
即在模版三后面添加:
NAME=“模版四”
SQL1=“select * from table_4 where dwdm = ? group by dwdm 4”
SQL2=“select * from table_4 where dwdm = ?”

(希望大家不要把那个读取学生信息的XMl例子的代码帖过来。)谢谢啦!分不够再开帖。
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fan178 2005-05-25
  • 打赏
  • 举报
回复
//修改NAME=“模版三”的SQL2的值
VAR
Root : IXMLNode; //指向XML根结点
Parent_Node: IXMLNode; //指向ROWDATA结点
Child_node : IXMLNode; //指向ROW的子结点
Begin
XMLDocument1.Active:=True;
XMLDocument1.Option:=XMLDocument1.Option+[doAutoSave];
Root := XMLDocument1.DocumentElement;
Parent_Node:=Root.ChildNodes[2];
Child_node :=Parent_Node.ChildNodes[2];
Child_node.text:=''; //输入你想修改后的内容;
End;

//删除NAME=“模版三”的所有值(包括"NAME","SQL1","SQL2"三个字段值)
VAR
Root : IXMLNode; //指向XML根结点
Child_node1: IXMLNode; //指向ROWDATA结点
Child_node2 : IXMLNode; //指向ROW的子结点
Child_node3 : IXMLNode; //指向ROW的子结点
Begin
XMLDocument1.Active:=True;
XMLDocument1.Option:=XMLDocument1.Option+[doAutoSave];
Child_node1 :=XMLDocument1.DocumentElement.ChildNodes[2].ChildNodes[0];
Child_node1.text:='' //取空就算删除吧
Child_node2 :=XMLDocument1.DocumentElement.ChildNodes[2].ChildNodes[1];
Child_node2.text:='' //取空就算删除吧
Child_node3 :=XMLDocument1.DocumentElement.ChildNodes[2].ChildNodes[2];
Child_node3.text:='' //取空就算删除吧
End;

//往该XML文件中,添加一个新的“模版四”的值
var
NewStock: IXMLNode;
ValueNode: IXMLNode;
begin
NewStock := XMLDocument1.DocumentElement.AddChild('ROW');
ValueNode := NewStock.AddChild('name');
ValueNode.Text := '模版四';
ValueNode := NewStock.AddChild('SQL1');
ValueNode.Text := 'select * from table_4 where dwdm = ? group by dwdm 4';
ValueNode := NewStock.AddChild('SQL2');
ValueNode.Text := 'select * from table_4 where dwdm = ?';
end;
ly_liuyang 2005-03-14
  • 打赏
  • 举报
回复
看看这个
http://www.csdn.com.cn/program/849.htm


http://lysoft.7u7.net
hanly2008 2005-03-14
  • 打赏
  • 举报
回复
我要的是 Delphi的TXMLDocument控件来实现
longki 2005-03-14
  • 打赏
  • 举报
回复

Delphi版的没有,VB.NET倒是有一个.

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧