<div> JavaScript is disabled on your browser.
Skip navigation links
Java™ Platform
Standard Ed. 8
compact3

Package javax.xml.xpath

这个包提供XPath表达式获取评价环境评价对象模型中立的API。

See: 描述

Package javax.xml.xpath Description

这个包提供XPath表达式获取评价环境评价对象模型中立的API。

下面的XML标准应用:


XPath的概述

XPath语言提供了一个简单的,用于从XML文档中选取节点简明语法。XPath还提供了用于在XML文档对象模型(DOM)规则转换节点树的一个布尔值,双,或字符串值。XPath是W3C定义的语言和一个正式的W3C推荐;W3C主机的XML路径语言(XPath)1版规范。

XPath开始在生活1999作为XSLT和XPointer语言的补充,但最近已作为一个独立的语言变得流行了,作为一个单一的XPath表达式可以用来代替大量的DOM API代码。

XPath表达式

XPath表达式是由一个位置的路径和一个或多个可选谓词。表达式还可以包括XPath变量。

以下是一个简单的XPath表达式的一个例子:

/食品/酒吧

这个例子可以从XML文档中选取下列<bar>元:

 
     
     
     
   
     
   <和>
  
      
      
      
    
      
    <栏>
      < / foo > 
    
 
     
     
     
   
     
   

表达/foo/bar是位置路径的一个例子。在XPath定位路径类似于Unix风格的文件系统路径,一个重要的区别是XPath表达式返回表达式匹配的所有节点。因此,所有的三<bar>元素在以下文件将被/foo/bar表达式选择:

 
     
     
     
   
     
   <和>
  
      
      
      
    
      
    <栏> 
     <栏> 
      <栏>
        < / foo > 
       
      
    
 
     
     
     
   
     
   

一个特殊的位置路径算子,//,选择在XML文档中的任何深度的节点。下面的示例选择所有<bar>元素,而不管他们的位置在一个文档:

/ /酒吧

通配符运算符,*,使所有元素节点被选择。下面的示例选择一个<foo>元素的所有子元素:

/食品/ *

除了元素节点的XPath路径位置也可能地址属性节点、文本节点、注释、处理指令节点,节点。下表给出了这些节点类型中的每个位置路径的例子:

Location Path 描述
/foo/bar/@id Selects the attribute id of the <bar> element
/foo/bar/text() Selects the text nodes of the <bar> element. No distinction is made between escaped and non-escaped character data.
/foo/bar/comment() Selects all comment nodes contained in the <bar> element.
/foo/bar/processing-instruction() Selects all processing-instruction nodes contained in the <bar> element.

谓词允许精炼的XPath路径选择的节点。谓词的形式[expression]。下面的示例选择所有<foo>元素包含与true include属性值:

// Foo [ @包括=真实的]

谓词可以被附加到彼此以进一步细化一个表达式,如:

// Foo [ @包括=真实”] [ @模式= 'bar ]

使用XPath的API

下面的示例演示如何使用XPath的API从XML文档中选择一个或多个节点:

XPath XPath = xpathfactory。newinstance()。newxpath();字符串表达式=“/小部件/部件”;inputsource inputsource =新inputsource(“部件。XML”);列表(列表)节点的XPath。评价(表达inputsource,xpathconstants。nodeset);

XPath表达式的类型

在XPath表达式选择XML文档中的节点,XPath API允许选定的节点被合并到下面的其他数据类型:

所需的返回类型是指定的方法QName参数调用进行表达,这是一个叫XPathExpression.evalute(...)或其中的XPath.evaluate(...)便利的方法。允许的属性值被指定为在XPathConstants类常量;他们:

当一个Boolean返回类型的要求,Boolean.TRUE是如果一个或多个节点的选取返回;否则,Boolean.FALSE返回。

String返回类型是一个从一个文本节点,检索字符数据的便利属性节点、注释节点,或处理指令节点。当在元素节点上使用时,子文本节点的值将被返回。

返回类型的Number试图融合节点向double数据类型文本。

XPath上下文

XPath路径位置可能与文档中的一个特殊的节点,称为context。考虑下面的XML文档:

z-c12f1940-a142—4d8f-91fc-0a56169179bd

<widget>元可以选用以下XPath API代码:

/ /解析XML是W3C的文档documentbuilderfactory DocumentBuilder建造。newinstance()。newdocumentbuilder();文档文档=生成器。解析(新文件(“widget”));XPath XPath = xpathfactory。newinstance()。newxpath();字符串表达式=“/小部件/部件”;widgetnode =(节点)节点的XPath。评价(表达、文档、xpathconstants。节点);

有一个参考的<widget>元,相对XPath表达式可以写选择<manufacturer>子元素:

XPath XPath = xpathfactory。newinstance()。newxpath();字符串表达式=“制造商”;manufacturernode =(节点)节点的XPath。评价(表达widgetnode,xpathconstants。节点);
Skip navigation links
Java™ Platform
Standard Ed. 8

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.

本帮助文档是使用 《百度翻译》翻译,请与英文版配合使用 by--QQ:654638585