
实现方法如下:
加载到XmlDocument,查找p子节点(XPath),如果要在子节点内继续查找,用递归;
string patten_block="<div class=\"wm_sktq_l\">[\\s\\S]</div>"
string patten_p="<p>[\\s\\S]</p>" 用组获取。
在实用数据绑定 系列文章中讨论 XPath,原因就在于这些选择都使用逻辑名(请参阅 突出的逻辑性)。比方说,不必选择根元素第二个子元素的第一个属性,可以使用 XPath 表达式 /cds/cd[@title=′August and Everything After′]。从一定意义上说,这就是 数据绑定,因为可以使用 XML 标记而不是结构来访问数据。
本文主要讨论使用 XPath 作为通过逻辑名从 XML 中访问数据的方法,如 cd、table 或 person,而不用 firstElement 或 parentgetChildren(2)。最终得到的代码非常类似于数据绑定,使用逻辑名而非语义名,但是又没有传统数据绑定解决方案的初始类生成和类路径问题。
节点知识
第 1 部分 中提到,XPath 选择总是返回一个节点 集。和其他任何集合一样,其中可能有零个、一个或多个成员。这里重要的概念是节点。节点可以是一段文本(比如元素的内容)、一个元素、一条处理指令或者注释。当然,节点集就是这类事物的任意组合。
如果您是一位 DOM 程序员,就不会被节点这个概念难倒。DOM 根据其 Node 接口看待一切事物,因此您也就习惯于通过 Node 接口来处理注释、元素和文本数据。如果不习惯 DOM,应该花点儿时间来熟悉节点。节点对于使用 XPath 至关重要。执行 XPath 表达式时,对表达式结果进行 *** 作的代码必须对节点 *** 作,而不深究 XML 语义。文档内的导航是用 XPath 表达式进行的,而不是使用 DOM 树转移方法从一个子节点移动到另一个。
回页首
JAXP 和 XPath 基础
Java 编程语言的最新版本 Java 50 中,对 Java API for XML Processing(JAXP)和 XPath 的支持已成为标准。您可能已经熟悉 JAXP 以及 SAX、DOM 和 XSL 编程中使用的 javaxxmlparsers 和 javaxxmltransform 包。(如果不熟悉的话,请参阅本文后面列出的一些 参考资料。)对 XPath 的支持主要来自于一个新的包 javaxxmlxpath。
检查 JAXP 和 Java 版本
JAXP 13 包含在所有的 Java 50 下载包中。为了确保安装了 JAXP 13,请在命令提示符下输入以下命令:
java -version
应该看到类似于 清单 1 所示的结果。
清单 1 命令行提示符下的 Java 50
java version "150_02"
Java(TM) 2 Runtime Environment, Standard Edition (build 150_02-56)
Java HotSpot(TM) Client VM (build 150_02-36, mixed mode, sharing)
如果版本是 15 或更高,则已经有了 JAXP 13,可以确信您有了本文中使用的 XPath API。
简单的 XML
还需要一些供 *** 作的 XML。本文中所有的例子都将使用 清单 2 中所示的简单 XML 文档。这个文档并不复杂,但是足以说明 90% 的 XPath 编程中所需要的各种 XPath 函数。
首先需要调用XML处理的命名空间
using SystemXml;
然后建立对XML进行处理的类的对象
XmlDocument xmlDoc =new XmlDocument();
与xml文件绑定
xmlDocLoad("xml文件路径");
1)取得ID为000202节点中的URI值
这句的目的是建立一个XPATH表达式,作用是查找所有名字是SUBMENU,属性ID=000202的节点
string xpath = "\\SUBMENU[@ID=000202]";
获得xml文件的根节点
XmlNode baseNode = xmlDocDocumentElement;
以根节点下的所有节点为查询返回,获得一个符合XPATH表达式的子节点
XmlNode selectedNode = xmlDocDSelectSingleNode(xpath);
获得节点中的第三个属性值(第一个属性值是0)
string strUri = selectedNodeAttributes[2]InnerText;
2)遍历SYSTEM以下所有节点?
不知道是不是要获得SYSTEM以下的所有节点,如果是这样的话,,还是使用XPATH
这个XPATH的作用是选择所有子节点
string xpath = "//";
获得xml文件的根节点
XmlNode sytemNode = xmlDocDocumentElementSelectSingleNode("\\SYSTEM");
获得SYSTEM节点下的所有子节点
XmlNodeList lstSelectNodes = systemNodeSelectNodes(xpath);
以上就是关于xpath怎么抓取<div>下的所有<p>标签的文字全部的内容,包括:xpath怎么抓取<div>下的所有<p>标签的文字、如何在node中使用xpath-quntin-ITPUB博客、看看这个XML取值问题怎么处理(在线等)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)