【问题标题】:java DOMXpath get attribute valuejava DOMXpath获取属性值
【发布时间】:2015-02-26 08:08:02
【问题描述】:

我有以下 xml:

<?xml version="1.0" encoding="UTF-8"?>
<GSP VER="3.2">
   <TM>0</TM>
   <Q>monkey pay</Q>
   <Context>
      <total_results>3</total_results>
   </Context>
   <RES EN="3" SN="1">
      <M>3</M>
      <R N="1">
         <U>link1</U>
         <T>title1</T>
         <S>snippet1</S>
      </R>
      <R N="2">
         <U>link2</U>
         <T>title2</T>
         <S>snippet2</S>
         <PageMap>
            <DataObject type="metatags">
               <Attribute name="viewport" value="width=992, maximum-scale=2.0" />
               <Attribute name="dc.subject" value="atributevalue" />
               <Attribute name="og:title" value="atributevalue" />
               <Attribute name="og:description" value="atributevalue" />
               <Attribute name="og:image" value="atributevalue" />
            </DataObject>
            <DataObject type="cse_image">
               <Attribute name="src" value="atributevalue" />
            </DataObject>
            <DataObject type="cse_thumbnail">
               <Attribute name="width" value="atributevalue" />
               <Attribute name="height" value="atributevalue" />
               <Attribute name="src" value="image2" />
            </DataObject>
         </PageMap>
      </R>
      <R N="3">
         <U>link3</U>
         <T>title3</T>
         <S>snippet3</S>
      </R>
   </RES>
</GSP>

我需要在“DataObject”标签中获取标签“Attribute”的属性 name="src" 的值,该标签具有属性 type="cse_thumbnail"。

为此的 xpath 是: /GSP/RES/R[@N=2]/PageMap/DataObject[@type='cse_thumbnail']/Attribute[@name='src']/@value

你知道如何在 Java 中使用 DOMXpath 提取它吗?

现在我可以获取所有带有链接、标题和 sn-p 的 R 标签,但我无法提取 PageMap 值。

这就是我解析 R 标签的方式:

    List resultNodes = new DOMXPath("/GSP/RES/R").selectNodes(domDoc);
    Iterator nodeIter = resultNodes.iterator();
    while (nodeIter.hasNext()) {
        Object obj = nodeIter.next();
        Element elem = (Element) object;
    }

【问题讨论】:

    标签: java xpath domxpath


    【解决方案1】:

    我不知道为什么它不应该工作。 那么标准的java实现呢:

    XPathFactory xPathfactory = XPathFactory.newInstance();
    XPath xpath = xPathfactory.newXPath();
    XPathExpression expr = xpath.compile("your path");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-20
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      相关资源
      最近更新 更多