`
IvanLi
  • 浏览: 602722 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

当XPath遇上NameSpace

阅读更多

在jdk5.0中,已经包含了对Xpath的支持,可一通过下面的代码得到Xpath

    XPathFactory  factory=XPathFactory.newInstance();
    XPath xPath=factory.newXPath();
    xPath.evaluate("xpaht_exp", dom/saxSource)//就可以得到任意节点的任意属性

 但是如果xml文件有多于1个的namespace,那么在使用xpath是要注意,xpath也必须使用namespace,可以通过下面的代码来指定xpath的命名空间

xPath.setNamespaceContext(getNameSpaceContext());
  private NamespaceContext getNameSpaceContext() {
    return new NamespaceContext() {
        public String getNamespaceURI(String prefix) {
          String uri;
          if (prefix.equals("ns1")){
            uri = "http://www.imsglobal.org/xsd/imscp_v1p1";
          }else if (prefix.equals("ns2")){
            uri = "http://www.imsglobal.org/xsd/imsmd_v1p2";
          }else if(prefix.equals("xsi")){
            uri = "http://www.w3.org/2001/XMLSchema-instance";
          }else{
            uri = null;
          }
          return uri;
        }
        public Iterator getPrefixes(String val) {return null;}
        public String getPrefix(String uri) {return null;}
        
      };
  }

 这样在些Xpath 表达式的时候就可以使用ns1,ns2这样的命名空间了,示例代码如下

assert xPath.evaluate("/ns1:manifest/@identifier", manifestSource).equals("[0000]_manifest");
assert xPath.evaluate("/ns1:manifest/ns1:resources/ns1:resource[1]/ns1:metadata/ns2:lom/ns2:general/ns2:language", manifestSource).equals("ENGLISH");

 这里有一篇详细的介绍 http://blog.davber.com/2006/09/17/xpath-with-namespaces-in-java/

分享到:
评论

相关推荐

    Xpath生成器,自动生成XPATH,C#版

    4. **相对路径**:生成相对于当前节点的XPath,用于在上下文中定位节点。 5. **函数应用**:XPath内置了一些函数,如 `text()` 用于获取元素的文本内容,`count()` 计算节点个数等,生成器可能能帮助用户创建这些...

    Xpath指南XPATH实例

    - **节点类型**:XPath处理的节点包括元素(Element)、属性(Attribute)、文本(Text)、命名空间(Namespace)、处理指令(Processing Instruction)、注释(Comment)和文档(Document)节点。 - **路径表达式...

    IE下获取XPATH小工具源码_xpath_

    此外,可能还会包含一些辅助功能,如验证XPath表达式的正确性,或者用XPath选取特定节点并高亮显示在页面上。 5. **浏览器兼容性**:虽然题目中提到的是IE,但考虑到现代开发环境,小工具可能还需要处理其他浏览器...

    谷歌浏览器XPath2.0插件

    4. 当你在网页上点击某个元素时,XPath Helper会自动填充该元素的XPath路径。同时,它还支持XPath表达式的测试,你可以在插件的输入框中输入任何XPath语句,然后点击“Evaluate”按钮,插件会高亮显示匹配的元素,...

    XPath依赖Jar包

    1. 节点类型:XPath识别元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令(processing-instruction)和注释(comment)等六种基本节点类型。 2. 路径表达式:路径表达式是XPath...

    xpath-helper.zip

    在Chrome浏览器中安装这个扩展后,可以在网页上直接输入XPath表达式,实时看到匹配的元素,这对于调试和优化爬虫代码非常有帮助。 总的来说,XPath和lxml是Python爬虫开发中的关键工具,它们的结合使用能够有效地...

    XPath教程

    谓语则用于进一步筛选轴上的节点,通常是通过表达式来实现。 XPath的语法相当直观,使用路径表达式来选取节点。路径表达式可以包含轴名、节点测试和谓语。例如,“/bookstore/book”选取了根元素“bookstore”下的...

    Xpath

    1. **节点类型**:XPath支持元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令(processing-instruction)和注释(comment)六种基本节点类型。 2. **轴(Axis)**:轴定义了...

    XPathHelper_2.0.2.zip

    2. **上下文信息**:提供当前选中节点的相关信息,如节点名称、类型、值等,有助于编写更精确的XPath表达式。 3. **自动完成**:支持XPath语法的智能提示,减少手动输入错误。 4. **多文档测试**:可以在同一个界面...

    XPathHelper_2.0.2_xpath_

    - **上下文菜单集成**:在右键点击网页元素时,可能会有XPathHelper的选项,直接进行XPath操作。 - **代码生成**:可能有生成相应编程语言(如Python、Java)的DOM操作代码的功能,方便将XPath表达式转化为代码实现...

    xpath-helper 插件及使用方法

    XPath Helper是一款强大的Chrome浏览器插件,专为网页元素定位和数据提取而设计。它使得开发者和数据抓取者能够方便地生成和测试XPath表达式,从而高效地在HTML文档中定位所需信息。XPath(XML Path Language)是一...

    xpath定位,xpath定位,xpath定位

    Selenium xpath,

    火狐老版本+xpath插件(适合python+xpath爬虫使用)

    通过直观地在网页上选择元素并获取XPath路径,可以极大地提高开发效率,并减少调试时间。 在Python爬虫中,XPath通常与`lxml`库结合使用。`lxml`是一个高效且功能强大的XML和HTML处理库,它支持XPath 1.0规范。使用...

    xpath-helper

    1. **实时调试**: 当你在浏览网页时,按下快捷键`Shift + Ctrl + X`,XPath Helper就会激活,允许你即时测试和验证XPath表达式。这对于开发者来说非常方便,可以快速定位需要的数据节点,而无需反复刷新页面或编写...

    XPath 测试工具 快速XPath测试

    3. **轴使用**:通过轴来改变当前上下文,如选取当前元素的所有子元素:`child::elementName`,或选取当前元素的祖先:`ancestor::elementName`。 4. **命名空间处理**:在处理包含命名空间的XML时,需正确处理命名...

    dom4j和xpath必备jar包

    6. **丰富的API**:提供了丰富的API,如Element、Attribute、Namespace等,可以方便地进行XML元素的增删改查。 **XPath** 是一门在XML文档中查找信息的语言,它能够根据表达式找到XML文档中的节点。XPath的关键特性...

    经典xpath教材打包

    经典xpath教材打包, XPath是W3C定义的语言和正式的W3C推荐的语言,W3C拥有XML Path Language (XPath) Version 1.0规范。XPath诞生于1999年,作为对XSLT和XPointer语言的补充,但近来已成为流行的独立语言,因为单个...

    xpath 依赖包及开发手册

    XPath是XML处理中的一种强大的查询语言,用于在XML文档中查找特定的信息。它允许开发者根据节点的名称、属性、值甚至是它们之间的关系来定位XML数据。在这个“xpath 依赖包及开发手册”中,我们主要关注XPath的使用...

    JDOM中XPath.selectNodes()和XPath.selectSingleNode()用法

    XPath是一种强大的查询语言,用于在XML文档中定位元素、属性和其他节点。本文将深入探讨JDOM库中XPath的相关方法——`selectNodes()`和`selectSingleNode()`,以及它们的用法。 首先,我们来理解JDOM的基本概念。...

    xPath(简单教程)

    节点类型主要包括元素(element)、属性(attribute)、文本(text)、命名空间(namespace)、处理指令(processing-instruction)和注释(comment)。路径表达式则是用来定位这些节点的关键工具,例如 `/` 代表根...

Global site tag (gtag.js) - Google Analytics