XML SelectSingleNode的使用 根据节点属性获取该节点
2016-03-17 01:55
591 查看
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, msxml,StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
XMLDocument1: TXMLDocument;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
noderef: IXMLDOMNodeRef;
root: IXMLDOMNode;
Node: IXMLDOMNode;
begin
XMLDocument1.LoadFromFile('test.xml');
XMLDocument1.Active := True;
noderef := XMLDocument1.DocumentElement.DOMNode as IXMLDOMNodeRef;
root := noderef.GetXMLDOMNode; // 获取跟节点
Node := root.selectSingleNode('ItemList/Item[@name="name2"]'); // 根据路径的属性值获取节点
ShowMessage(Node.Attributes.getnameditem('title').Text); // title2
Node.Attributes.getnameditem('title').Text:='hello'; // <Item name="name2" title="title2"/> => <Item name="name2" title="hello"/>
XMLDocument1.SaveToFile('test.xml');
end;
end.
test.xml文档:
<?xml version="1.0" encoding="utf-8"?>
<Test>
<ItemList>
<Item name="name1" title="title1"></Item>
<Item name="name2" title="title2"/>
</ItemList>
</Test>
http://blog.csdn.net/henreash/article/details/16827007
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, xmldom, XMLIntf, msxmldom, XMLDoc, msxml,StdCtrls;
type
TForm1 = class(TForm)
btn1: TButton;
XMLDocument1: TXMLDocument;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btn1Click(Sender: TObject);
var
noderef: IXMLDOMNodeRef;
root: IXMLDOMNode;
Node: IXMLDOMNode;
begin
XMLDocument1.LoadFromFile('test.xml');
XMLDocument1.Active := True;
noderef := XMLDocument1.DocumentElement.DOMNode as IXMLDOMNodeRef;
root := noderef.GetXMLDOMNode; // 获取跟节点
Node := root.selectSingleNode('ItemList/Item[@name="name2"]'); // 根据路径的属性值获取节点
ShowMessage(Node.Attributes.getnameditem('title').Text); // title2
Node.Attributes.getnameditem('title').Text:='hello'; // <Item name="name2" title="title2"/> => <Item name="name2" title="hello"/>
XMLDocument1.SaveToFile('test.xml');
end;
end.
test.xml文档:
<?xml version="1.0" encoding="utf-8"?>
<Test>
<ItemList>
<Item name="name1" title="title1"></Item>
<Item name="name2" title="title2"/>
</ItemList>
</Test>
http://blog.csdn.net/henreash/article/details/16827007
相关文章推荐
- NodeJS的代码调试和性能调优
- node.js使用cluster实现多进程
- Node.js实用代码段之获取Buffer对象字节长度
- Node.js实用代码段之正确拼接Buffer
- nodejs导出模块功能原理的个人理解
- nodeJS newman mail 安装
- node.js递归打印文件目录、文件名
- 认识DOM的三大节点:元素节点,文本节点,属性节点以及nodeName,nodeType,nodeValue的区别
- 关于使用node进行网站前后端分离设想和问题解决
- NodeJS实战
- PAT--1115. Counting Nodes in a BST
- ZeroC Ice IceGrid Node和IceGrid
- IceGrid Node和IceGrid
- Leetcode 19 Remove Nth Node From End of List 链表
- 222. Count Complete Tree Nodes LeetCode
- This Node源码分析
- 边走边学Nodejs (基础入门篇)
- install nodejs npm git on ubuntu14.04.1
- LeetCode Populating Next Right Pointers in Each Node II
- hdfs格式化hadoop namenode -format错误