昆明java培训
达内昆明广州春城路

18487146383

热门课程

XML编程:使用XPath对象查询xml文档

  • 时间:2016-10-25
  • 发布:昆明Java培训
  • 来源:java教程

昆明达内Java培训的老师使用XPath对象查询xml文档。

XPath,一种为查询XML文档而设计的查询语言。XPath并不是Java语言,事实上XPath不是一种完整的编程语言。有很多东西用XPath表达不出来,甚至有些查询也无法表达。幸运的是,可以把XPath结合到Java程序中,这样就能发挥两者的优势了:Java做Java所擅长的,XPath做XPath所擅长的。Java程序执行XPath查询所需要的应用程序编程接口(API)还因形形色色的XPath引擎而各不相同。Xalan有一种API,Saxon使用另一种,其他引擎则使用其他的API。Java 5推出了javax.xml.xpath包,提供一个引擎和对象模型独立的XPath库。

在Java中计算XPath表达式时,第二个参数指定需要的返回类型。有五种可能,都在javax.xml.xpath.XPathConstants类中命名了常量:

XPathConstants.NODESET

XPathConstants.BOOLEAN

XPathConstants.NUMBER

XPathConstants.STRING

XPathConstants.NODE

测试代码:

1 public class XPathTest {

2    /**

3     *使用不带命名空间的XPath查询

4     * @throws Exception

5     */

6    @Test

7    public void testRetrieveOndNode() throws Exception{

8        //获得xml文档的内存模型

9        DocumentBuilder builder = DocumentBuilderFactory

10        .newInstance().newDocumentBuilder();

11        Document document = builder.parse(new File("src/main/resource/books.xml"));

12        //创建XPathFactory对象

13        XPathFactory xPathFactory = XPathFactory.newInstance();

14        //获得XPath对象

15        XPath xPath = xPathFactory.newXPath();

16        //创建XPath表达式对象

17        XPathExpression nodeExpr = xPath.compile("//book[1]");

18        //执行XPath表达式,因为该表达式只能获得一个节点,所以用XPathConstants.NODE

19        Element element = (Element) odeExpr.evaluate(document, XPathConstants.NODE);

20        NodeList nodes = element.getChildNodes();

21        for(int i=0;i<nodes.getLength();i++){

22            Node node = nodes.item(i);

23            //获得节点类型

24            short nodeType = ode.getNodeType();

25            if(nodeType==Node.ELEMENT_NODE){

26                //获得节点文本,getNodeValue()无法获得节点的文本

27                String text=node.getTextContent();

28                System.out.println(node.getNodeName()+"--"+text);

29            }

30        }

31    }

32 }

了解详情请登陆昆明达内Java培训官网(km.Java.tedu.cn)!

上一篇:XML编程:使用JAXB进行java对象和xml格式之间的相互转换
下一篇:【达内Java培训】spring事务回滚

java IO流之字节流和字符流

java IO流之file类的常用操作

搭建james邮件服务器

Java识别操作系统

选择城市和中心
贵州省

广西省

海南省