Java XPath - encontrar marcas prefixados com

michal.jakubeczy:

Eu tenho um HTML seguinte

<data-my-tag>
  <data-another-tag>
    ... content ... 
  </data-another-tag>
  <data-my-tag>
    ... content ... 
  </data-my-tag>
</data-my-tag>

Agora eu preciso encontrar todas as tags começando com prefixo <data-. Eu preciso encontrar seus nomes e também seu conteúdo. Eu sei que isto não é possível de alcançar com regex, então eu comecei a trabalhar com javax.xml.parsers. É fácil para mim encontrar algumas tags de acordo com um determinado nome, mas eu sou incapaz de encontrar marcas que começam com alguns prefixo.

O que é a expressão ou código para encontrar as tags começando com prefixo?

VGR:

Você pode usar o XPath starts-com função:

public void findElements(InputSource source,
                         String prefix) {

    try {
        XPath xpath = XPathFactory.newInstance().newXPath();
        NodeList matches = (NodeList) xpath.evaluate(
            "//*[starts-with(local-name(), '" + prefix + "')]",
            source, XPathConstants.NODESET);

        int count = matches.getLength();
        for (int i = 0; i < count; i++) {
            Node match = matches.item(i);
            System.out.println("Element: " + match.getNodeName());
            System.out.println("Text: " + match.getTextContent().trim());
            System.out.println();
        }
    } catch (XPathException e) {
        throw new RuntimeException(e);
    }
}

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=275780&siteId=1
Recomendado
Clasificación