XML文件如下,我想取得并修改Name="456"的ID的值“2000”,并对“2000”进行修改。
<?xml version="1.0" encoding="utf-8"?>
<aaa>
<bbb Name="123">
<ID>1000</ID>
<Code>1</Code>
</bbb>
<bbb Name="456">
<ID>2000</ID>
<Code>2</Code>
</bbb>
<bbb Name="789">
<ID>3000</ID>
<Code>3</Code>
</bbb>
</aaa>
多谢!
<?xml version="1.0" encoding="utf-8"?>
<aaa>
<bbb Name="123">
<ID>1000</ID>
<Code>1</Code>
</bbb>
<bbb Name="456">
<ID>2000</ID>
<Code>2</Code>
</bbb>
<bbb Name="789">
<ID>3000</ID>
<Code>3</Code>
</bbb>
</aaa>
多谢!
解决方案 »
- 互动游戏中视频运动捕捉的问题
- 真不明白,为什么这句简单的SQL语句老是在运行时出错?请教前辈!
- 数据库还原,我已经出离愤怒了!!!
- 一个关于使用Gauge的问题
- 关于用客户端clientdataset提交数据的几个难点问题,高手请进,分不够可以再加
- 如何向ASP写的网站插入数据啊
- 要是认为自己对使用Ehlib报表控件熟悉的话,请进!
- 用Adoconnect连接access数据库文件,数据连接属性中,选择ole db 提供者时选哪个?
- 如何判断Edit1.text的值不是数字?
- 谁看到过《实战Delphi 5 — II 分布式Web应用系统 序》这本书?????
- quickreport頁面設置問題,在線等,解決即給分
- 扩展赋值语句指的什么,使用需要注意什么
var
XMLObj: IXMLDocument;
ANodeList: IXMLNodeList;
ASubNode: IXMLNode;
I: integer;
begin
XMLObj := LoadXMLDocument("文件名");
ANodeList := XMLObj.DocumentElement.ChildNodes;
for I:= 0 to ANodeList.Count - 1 do
begin
//比较节点属性
if ANodeList[I].GetAttributeNS('Name', '') = '456' then
begin
ASubNode:=ANodeList[I].ChildNodes.FindNode('ID');
ASubNode.text := '要修改的值';
Break;
end;
end;
end;
XMLObj := LoadXMLDocument(xmlfile);
XMLObj.Active:=true;
ANodeList := XMLObj.DocumentElement.ChildNodes;报错
改为ANodeList := XMLObj.ChildNodes;但是取不出值来
或者用ANodeList := XMLObj.ChildNodes.FindNode('aaa').ChildNodeS;
报错估计是你的XML文件语法有问题,查插看吧,
XMLObj :=TXMLDocument.Create(nil);//这样有问题的
XMLObj :=TXMLDocument.Create(Application);可以的
或者用接口,XMLObj: IXMLDocument
XMLObj:= LoadXMLDocument('文件名');//这样比较好的