XML example, from the OmniXML XPath demo:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book>
    <title lang="eng">Harry Potter</title>
  </book>
  <book>
    <title lang="eng">Learning XML</title>
  </book>
  <book>
    <title lang="slo">Z OmniXML v lepso prihodnost</title>
    <year>2006</year>
  </book>
  <book>
    <title>Kwe sona standwa sam</title>
  </book>
</bookstore>

Try something like this:

uses
XMLDoc, XMLDom, XMLIntf;
 // From a post in Embarcadero's Delphi XML forum.
 function selectNode(xnRoot: IXmlNode;const nodePath: WideString): IXmlNode;
 var
  intfSelect : IDomNodeSelect;
   dnResult : IDomNode;
   intfDocAccess : IXmlDocumentAccess;
   doc: TXmlDocument;
 begin
  Result :=nil;
   if not Assigned(xnRoot)or not Supports(xnRoot.DOMNode, IDomNodeSelect, intfSelect) then
   Exit;
   dnResult := intfSelect.selectNode(nodePath);
if Assigned(dnResult) then
begin
if Supports(xnRoot.OwnerDocument, IXmlDocumentAccess, intfDocAccess) then
  doc := intfDocAccess.DocumentObject
   else
   doc :=nil;
Result := TXmlNode.Create(dnResult,nil, doc);
   end;
end; var
IDoc: IXMLDocument;
INode: IXMLNode;
begin
IDoc := LoadXMLDocument('.\books.xml');
INode := SelectNode(IDoc.DocumentElement,'/bookstore/book[2]/title');
end; //================================================================================ procedure TForm1.Button1Click(Sender: TObject);
var
  noderef:IXMLDOMNodeRef;
  root:IXMLDOMNode;
  Node:IXMLDOMNode; begin
  XMLDocument1.Active:=true;
  noderef:=XMLDocument1.DocumentElement.DOMNode as IXMLDOMNodeRef;
  root:=noderef.GetXMLDOMNode;
  node:=root.selectSingleNode('node1/node2/node3/node4');
  if Assigned(node) then
  begin
    ShowMessage(node.attributes.getnameditem('title').text);
  end;
end;

XPath and TXmlDocument的更多相关文章

  1. 在Vcl和FireMonkey应用程序中启用TXMLDocument 的XPath(selectNode,selectNodes)方法

    该TXMLDocument的类让你来操作VCL和FireMonkey应用程序的XML文件,但这个类没有实现直接的方式来调用XPath的相关方法(selectNode,的selectNodes),所以你 ...

  2. xpath提取多个标签下的text

    title: xpath提取多个标签下的text author: 青南 date: 2015-01-17 16:01:07 categories: [Python] tags: [xpath,Pyth ...

  3. C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

    第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel, ...

  4. 在Java中使用xpath对xml解析

    xpath是一门在xml文档中查找信息的语言.xpath用于在XML文档中通过元素和属性进行导航.它的返回值可能是节点,节点集合,文本,以及节点和文本的混合等.在学习本文档之前应该对XML的节点,元素 ...

  5. XPath 学习二: 语法

    XPath 使用路径表达式来选取 XML 文档中的节点或节点集.节点是通过沿着路径 (path) 或者步 (steps) 来选取的. 下面列出了最有用的路径表达式: 表达式 描述 nodename 选 ...

  6. xpath 学习一: 节点

    xpath 中,有七种类型的节点: 元素.属性.文本.命名空间.处理指令.注释.以及根节点 树的根成为文档节点或者根节点. 节点关系: Parent, Children, sibling(同胞), A ...

  7. Python爬虫利器三之Xpath语法与lxml库的用法

    前面我们介绍了 BeautifulSoup 的用法,这个已经是非常强大的库了,不过还有一些比较流行的解析库,例如 lxml,使用的是 Xpath 语法,同样是效率比较高的解析方法.如果大家对 Beau ...

  8. 使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接

    使用python+xpath 获取https://pypi.python.org/pypi/lxml/2.3/的下载链接: 使用requests获取html后,分析html中的标签发现所需要的链接在& ...

  9. 关于robotframework,app,appium的xpath定位问题及常用方法

    关于类似的帖子好像很多,但是没有找到具体能帮我解决问题的办法.还是自己深究了好久才基本知道app上面的xpath定位和web上的不同点: 先放一个图: A,先说说不用xpath的场景,一般是用于存在i ...

随机推荐

  1. Linux:安装mysql

    #install mysql$ rpm -ivh MySQL-client-5.5.28-1.rhel5.x86_64.rpm --nodeps$ rpm -ivh MySQL-server-5.5. ...

  2. wpf DataTemplate ColumnDefinition width equal

    <Grid.ColumnDefinitions> <ColumnDefinition SharedSizeGroup="col1" /> <Colum ...

  3. python学习之算法、自定义模块、系统标准模块(上)

    算法.自定义模块.系统标准模块(time .datetime .random .OS .sys .hashlib .json和pickle) 一:算法回顾: 冒泡算法,也叫冒泡排序,其特点如下: 1. ...

  4. $.ajax的一些总结

    1.$.ajaxSetup()函数来全局设置    $.ajaxSetup({      url: "/xmlhttp/",      global: false,      ty ...

  5. Connect to DB2 database in eclipse via jdbc

    https://stackoverflow.com/questions/23801841/connect-to-db2-database-in-eclipse-via-jdbc

  6. JavaScript中的普通函数与构造函数

    问题 什么是构造函数? 构造函数与普通函数区别是什么? 用new关键字的时候到底做了什么? 构造函数有返回值怎么办? 构造函数能当普通函数调用吗? 以下是我的一些理解,理解错误的地方恳请大家帮忙指正, ...

  7. maven centos7 环境变量

    tar -xvf apache-maven-3.3.9-bin.tar.gz mv apache-maven-3.3.9 /usr/local/apache-maven 文件存放好之后,设置环境变量, ...

  8. 【Atcoder】ARC102 题解

    C - Triangular Relationship 题解 枚举一个数%K的值然后统计另两个 代码 #include <bits/stdc++.h> #define enter putc ...

  9. PHP 数字序数&字母序数 相互转化

    序数从1开始  即 A=1  而非 A=0 /** * 数字序列转字母序列 * @param $int * @param int $start * @return string|bool */ fun ...

  10. 前馈神经网络练习:使用tensorflow进行葡萄酒种类识别

    数据处理 样本数据描述 样本数据集是double类型的178 * 14矩阵,第一列表示酒所属类别,后面13列分别表示当前样本的13个属性: 1) Alcohol 2) Malic acid 3) As ...