org.jdom2.xpath.XPath类的使用及代码示例

x33g5p2x  于2022-02-03 转载在 其他  
字(13.4k)|赞(0)|评价(0)|浏览(173)

本文整理了Java中org.jdom2.xpath.XPath类的一些代码示例,展示了XPath类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。XPath类的具体详情如下:
包路径:org.jdom2.xpath.XPath
类名称:XPath

XPath介绍

[英]A utility class for performing XPath calls on JDOM nodes, with a factory interface for obtaining a first XPath instance. Users operate against this class while XPath vendors can plug-in implementations underneath. Users can choose an implementation using either #setXPathClass or the system property "org.jdom2.xpath.class".
[中]用于在JDOM节点上执行XPath调用的实用程序类,带有用于获取第一个XPath实例的工厂接口。用户针对这个类进行操作,而XPath供应商可以在下面实现插件。用户可以选择使用#setXPathClass或系统属性“org.jdom2.xpath.class”的实现。

代码示例

代码示例来源:origin: simpligility/android-maven-plugin

XPath path = XPath.newInstance( xpath );
Object source = path.selectSingleNode( r.getRootElement() );
if ( !( source instanceof Element ) )
      xpath, source ) );
Object target = path.selectSingleNode( doc.getRootElement() );
if ( !( target instanceof Element ) )

代码示例来源:origin: org.jdom/jdom

/**
 * Evaluates an XPath expression and returns the list of selected
 * items.
 * <p>
 * <strong>Note</strong>: This method should not be used when the
 * same XPath expression needs to be applied several times (on the
 * same or different contexts) as it requires the expression to be
 * compiled before being evaluated.  In such cases,
 * {@link #newInstance allocating} an XPath wrapper instance and
 * {@link #selectNodes(java.lang.Object) evaluating} it several
 * times is way more efficient.
 * </p>
 *
 * @param  context   the node to use as context for evaluating
 *                   the XPath expression.
 * @param  path      the XPath expression to evaluate.
 *
 * @return the list of selected items, which may be of types: {@link Element},
 *         {@link Attribute}, {@link Text}, {@link CDATA},
 *         {@link Comment}, {@link ProcessingInstruction}, Boolean,
 *         Double, or String.
 *
 * @throws JDOMException   if the XPath expression is invalid or
 *                         its evaluation on the specified context
 *                         failed.
 */
public static List<?> selectNodes(Object context, String path)
    throws JDOMException {
  return newInstance(path).selectNodes(context);
}

代码示例来源:origin: org.jdom/jdom

/**
 * Adds a namespace definition (prefix and URI) to the list of
 * namespaces known of this XPath expression.
 * <p>
 * <strong>Note</strong>: In XPath, there is no such thing as a
 * 'default namespace'.  The empty prefix <b>always</b> resolves
 * to the empty namespace URI.</p>
 *
 * @param  prefix   the namespace prefix.
 * @param  uri      the namespace URI.
 *
 * @throws IllegalNameException   if the prefix or uri are null or
 *                                empty strings or if they contain
 *                                illegal characters.
 */
public void addNamespace(String prefix, String uri) {
  addNamespace(Namespace.getNamespace(prefix, uri));
}

代码示例来源:origin: org.openfuxml/ofx-util

public OfxIdGenerator()
  {
    autoId = 1;
    try
    {
      
      xpath = XPath.newInstance("//ofx:section");
      xpath.addNamespace(Namespace.getNamespace("ofx", "http://www.openfuxml.org"));
      xpath.addNamespace(Namespace.getNamespace("wiki", "http://www.openfuxml.org/wiki"));
      
//            List<?> list = xpath.selectNodes(doc.getRootElement());
//            logger.debug(list.size()+" hits");
      
    }
    catch (JDOMException e) {logger.error("",e);}
  }

代码示例来源:origin: org.openfuxml/ofx-wiki

public static synchronized Template getTemplate(Templates templates, String name) throws OfxConfigurationException 
{
  Template result = new Template();
  try
  {
    XPath xpath = XPath.newInstance( "//wiki:template[@name='"+name+"']" );
    xpath.addNamespace(Namespace.getNamespace("ofx", "http://www.openfuxml.org"));
    xpath.addNamespace(Namespace.getNamespace("wiki", "http://www.openfuxml.org/wiki"));
    
    Document doc = JaxbUtil.toDocument(templates);
    Element e = (Element)xpath.selectSingleNode(doc);
    if(e!=null){result = (Template)JDomUtil.toJaxb(e, Template.class);}
    else{throw new OfxConfigurationException("No template definition for templateName="+name);}
  }
  catch (JDOMException e) {logger.error("",e);}
  return result;
}

代码示例来源:origin: org.apache.jspwiki/jspwiki-main

XPath xpath = XPath.newInstance( selector );
xpath.addNamespace( "j", J2EE_SCHEMA_25_NAMESPACE );
List<?> nodes = xpath.selectNodes( root );
for( Iterator<?> it = nodes.iterator(); it.hasNext(); )
xpath = XPath.newInstance( selector );
xpath.addNamespace( "j", J2EE_SCHEMA_25_NAMESPACE );
nodes = xpath.selectNodes( root );
for( Iterator<?> it = nodes.iterator(); it.hasNext(); )

代码示例来源:origin: geotools/geotools

private static boolean setCoverages(Element root, StringBuilder builder) throws JDOMException {
  builder.append("  <coverages>\n");
  List<?> coverages = XPath.selectNodes(root, "coverages/coverage");
  boolean longName = false;
  for (Object cov : coverages) {
    if (cov instanceof Element) {
      if (setCoverage(((Element) cov), builder)) {
        longName = true;
      }
    }
  }
  builder.append("  </coverages>\n");
  return longName;
}

代码示例来源:origin: org.apache.jspwiki/jspwiki-main

private void printImage( Element base ) throws JDOMException
  Element child = (Element)XPath.selectSingleNode( base, "TBODY/TR/TD/*" );
  if( child == null )
  map.put( "width", img.getAttributeValue( "width" ) );
  map.put( "alt", img.getAttributeValue( "alt" ) );
  map.put( "caption", emptyToNull( XPath.newInstance( "CAPTION" ).valueOf( base ) ) );
  map.put( "link", href );
  map.put( "border", img.getAttributeValue( "border" ) );

代码示例来源:origin: org.openfuxml/ofx-wiki

private void process() throws JDOMException
  List<?> list = xpathCode.selectNodes(rootElement);
  logger.debug(list.size()+" <code> elements found in "+rootElement.getName());
  for (Iterator<?> iter = list.iterator(); iter.hasNext();)
      Element eP = (Element)xpParent.selectSingleNode(eCode);
      if(eP!=null)
        Element ePre = (Element)xpathPre.selectSingleNode(eP);
        if(ePre!=null)

代码示例来源:origin: geotools/geotools

private static boolean setCoverage(Element cov, StringBuilder builder) throws JDOMException {
  builder.append("    <coverage>\n");
  Element name = (Element) XPath.selectSingleNode(cov, "name");
  String coverageName = name.getText();
  builder.append("      <name>" + coverageName + "</name>\n");
  Element schema = (Element) XPath.selectSingleNode(cov, "schema");
  String schemaName = schema.getAttributeValue("name");
  builder.append("      <schema name=\"" + schemaName + "\" >\n");
  Element schemaAttributesElement = (Element) XPath.selectSingleNode(schema, "attributes");
  String schemaAttribs = schemaAttributesElement.getText();
  schemaAttribs =
      schemaAttribs.replace("imageindex:Integer", "imageindex:Integer,location:String");
  builder.append("        <attributes>" + schemaAttribs + "</attributes>\n");
  builder.append("      </schema>\n");
  addDomainsToCoverage(schemaAttribs, builder);
  builder.append("    </coverage>\n");
  return coverageName.length() > 62;
}

代码示例来源:origin: org.jdom/jdom

/**
   * <i>[Serialization support]</i> Resolves the read XPathString
   * objects into XPath implementations.
   *
   * @return an instance of a concrete implementation of
   *         XPath.
   *
   * @throws ObjectStreamException   if no XPath could be built
   *                                 from the read object.
   */
  private Object readResolve() throws ObjectStreamException {
    try {
      return XPath.newInstance(this.xPath);
    }
    catch (JDOMException ex1) {
      throw new InvalidObjectException(
          "Can't create XPath object for expression \"" +
              this.xPath + "\": " + ex1.toString());
    }
  }
}

代码示例来源:origin: org.jdom/jdom

/**
 * <i>[Serialization support]</i> Returns the alternative object
 * to write to the stream when serializing this object.  This
 * method returns an instance of a dedicated nested class to
 * serialize XPath expressions independently of the concrete
 * implementation being used.
 * <p>
 * <strong>Note</strong>: Subclasses are not allowed to override
 * this method to ensure valid serialization of all
 * implementations.</p>
 *
 * @return an XPathString instance configured with the wrapped
 *         XPath expression.
 *
 * @throws ObjectStreamException   never.
 */
protected final Object writeReplace() throws ObjectStreamException {
  return new XPathString(this.getXPath());
}

代码示例来源:origin: org.openfuxml/ofx-util

public OfxContainerMerger()
{
  lXpath = new ArrayList<XPath>();
  try
  {
    Namespace nsOfx = Namespace.getNamespace("ofx", "http://www.openfuxml.org");
    Namespace nsWiki = Namespace.getNamespace("wiki", "http://www.openfuxml.org/wiki");
    
    XPath xpSections  = XPath.newInstance("//ofx:sections");
    xpSections.addNamespace(nsOfx); xpSections.addNamespace(nsWiki);
    lXpath.add(xpSections);
    
    XPath xpSectionTransparent  = XPath.newInstance("//ofx:section[@container='true']");
    xpSectionTransparent.addNamespace(nsOfx); xpSectionTransparent.addNamespace(nsWiki);
    lXpath.add(xpSectionTransparent);
  }
  catch (JDOMException e) {logger.error("",e);}
}

代码示例来源:origin: Unidata/thredds

@Test
@Ignore("WMS not working")
public void checkWMSDates() throws JDOMException, IOException {
 String endpoint = TestOnLocalServer.withHttpPath("/wms/cdmUnitTest/ncss/climatology/PF5_SST_Climatology_Monthly_1985_2001.nc?service=WMS&version=1.3.0&request=GetCapabilities");
 byte[] result = TestOnLocalServer.getContent(endpoint, 200, ContentType.xml);
 Reader in = new StringReader( new String(result, CDM.utf8Charset));
 SAXBuilder sb = new SAXBuilder();
 Document doc = sb.build(in);
 if (show) {
  XMLOutputter fmt = new XMLOutputter(Format.getPrettyFormat());
  fmt.output(doc, System.out);
 }
 XPath xPath = XPath.newInstance("//wms:Dimension");
 xPath.addNamespace("wms", doc.getRootElement().getNamespaceURI());
 Element dimNode = (Element) xPath.selectSingleNode(doc);
 //List<String> content = Arrays.asList(dimNode.getText().trim().split(","));
 List<String> content = new ArrayList<>();
 for (String d : Arrays.asList(dimNode.getText().trim().split(","))) {
  // System.out.printf("Date= %s%n", d);
  CalendarDate cd = CalendarDate.parseISOformat(null, d);
  content.add(cd.toString());
 }
 assertEquals(expectedDatesAsDateTime, content);
}

代码示例来源:origin: org.apache.jspwiki/jspwiki-main

xpath = XPath.newInstance( selector );
xpath.addNamespace( "j", J2EE_SCHEMA_25_NAMESPACE );
List<?> constraints = xpath.selectNodes( root );
xpath = XPath.newInstance( selector );
xpath.addNamespace( "j", J2EE_SCHEMA_25_NAMESPACE );
List<?> roles = xpath.selectNodes( root );

代码示例来源:origin: geotools/geotools

private static void getAttributes(
    Set<String> timeAttributes, Set<String> elevationAttributes, Element root)
    throws JDOMException {
  List<?> schemaAttributes = XPath.selectNodes(root, "coverages/coverage/schema/attributes");
  for (Object e : schemaAttributes) {
    if (e instanceof Element) {
      String attributes = ((Element) e).getText();
      String[] attribs = attributes.split(",");
      for (String attrib : attribs) {
        if (attrib.contains(TIME_ATTRIB_TYPE)) {
          String[] nameTypePair = attrib.split(":");
          String name = nameTypePair[0];
          if (!timeAttributes.contains(name)) {
            timeAttributes.add(name);
          }
        } else if (attrib.contains(ELEVATION_ATTRIB_TYPE_FLOAT)
            || attrib.contains(ELEVATION_ATTRIB_TYPE_DOUBLE)) {
          String[] nameTypePair = attrib.split(":");
          String name = nameTypePair[0];
          if (!elevationAttributes.contains(name)) {
            elevationAttributes.add(name);
          }
        }
      }
    }
  }
}

代码示例来源:origin: Renanse/Ardor3D

/**
 * Select nodes through an XPath query and returns the first hit
 *
 * @param element
 *            root element to start search on
 * @param query
 *            XPath expression
 * @return the first selected item, which may be of types: {@link Element}, {@link Attribute}, {@link Text},
 *         {@link CDATA}, {@link Comment}, {@link ProcessingInstruction}, Boolean, Double, String, or
 *         <code>null</code> if no item was selected.
 */
public Object selectSingleNode(final Element element, final String query) {
  final XPath xPathExpression = getXPathExpression(query);
  try {
    return xPathExpression.selectSingleNode(element);
  } catch (final JDOMException e) {
    e.printStackTrace();
  }
  return null;
}

代码示例来源:origin: org.openfuxml/ofx-wiki

public XhtmlCodePreMover()
  {
    try
    {
      xpathCode = XPath.newInstance("//code");
      xpParent = XPath.newInstance("..");
      xpathPre = XPath.newInstance("following-sibling::pre[position()=1]");
//            xpath.addNamespace(Namespace.getNamespace("ofx", "http://www.openfuxml.org"));
//            xpath.addNamespace(Namespace.getNamespace("wiki", "http://www.openfuxml.org/wiki"));        
    }
    catch (JDOMException e) {logger.error("",e);}
  }

代码示例来源:origin: org.openfuxml/ofx-util

public OfxContentTrimmer()
{
  lXpath = new ArrayList<XPath>();
  try
  {
    Namespace nsOfx = Namespace.getNamespace("ofx", "http://www.openfuxml.org");
    Namespace nsWiki = Namespace.getNamespace("wiki", "http://www.openfuxml.org/wiki");
    
    XPath xpSections  = XPath.newInstance("//ofx:paragraph");
    xpSections.addNamespace(nsOfx); xpSections.addNamespace(nsWiki);
    lXpath.add(xpSections);
  }
  catch (JDOMException e) {logger.error("",e);}
}

代码示例来源:origin: org.jdom/jdom

/**
 * Evaluates the wrapped XPath expression and returns the first
 * entry in the list of selected nodes (or atomics).
 * <p>
 * <strong>Note</strong>: This method should not be used when the
 * same XPath expression needs to be applied several times (on the
 * same or different contexts) as it requires the expression to be
 * compiled before being evaluated.  In such cases,
 * {@link #newInstance allocating} an XPath wrapper instance and
 * {@link #selectSingleNode(java.lang.Object) evaluating} it
 * several times is way more efficient.
 * </p>
 *
 * @param  context   the element to use as context for evaluating
 *                   the XPath expression.
 * @param  path      the XPath expression to evaluate.
 *
 * @return the first selected item, which may be of types: {@link Element},
 *         {@link Attribute}, {@link Text}, {@link CDATA},
 *         {@link Comment}, {@link ProcessingInstruction}, Boolean,
 *         Double, String, or <code>null</code> if no item was selected.
 *
 * @throws JDOMException   if the XPath expression is invalid or
 *                         its evaluation on the specified context
 *                         failed.
 */
public static Object selectSingleNode(Object context, String path)
    throws JDOMException {
  return newInstance(path).selectSingleNode(context);
}

相关文章

微信公众号

最新文章

更多