6

よく検索しますが、欲しいものが見つかりません。

現在のページに xpath が存在するかどうかを制御したい。

私はjava/xml、phpなどで見つけました...しかし、Javaだけではありません。

xpath が存在する場合、現在のページをチェックインする簡単な方法を検索します。

ありがとうございました。

よろしく。

4

3 に答える 3

12

メソッドを使用できますjavax.xml.xpath.XPath.evalute

http://docs.oracle.com/javase/1.5.0/docs/api/javax/xml/xpath/XPath.html#evaluate(java.lang.String,%20java.lang.Object,%20javax.xml.名前空間.QName)

例:

XPathFactory factory = XPathFactory.newInstance();
XPath path = factory.newXPath();
Node node = (Node) path.evaluate("//myXPath", document, XPathConstants.NODE);
if (node == null)
    // don't exists
else
    // I exist!

アップデート

どのように取得しdocumentます。
私の古いコードのいくつかの行をコピーして貼り付けます:

BufferedInputStream bufferPage = new BufferedInputStream(new URL("http://www.yourUrl.com").openStream());

Tidy tidy = new Tidy();
tidy.setQuiet(true);
tidy.setShowWarnings(false);
tidy.setInputEncoding("UTF-8");
Document document = tidy.parseDOM(bufferPage, null);
document.normalize();

ライブラリ(Tidy)を使用してhtmlページを読み取ります。

http://jtidy.sourceforge.net/download.html
http://jtidy.sourceforge.net/apidocs/index.html?org/w3c/tidy/package-tree.html

于 2012-07-09T09:36:18.533 に答える
1

JAXP API を使用している場合は、NODE-SET を返す XPath 式を使用して、返された NodeList が空かどうかを Java コードで確認できます。または、結果の型を BOOLEAN として指定することもできます。この場合、ブール値の結果が直接得られます。

于 2012-07-09T09:29:25.740 に答える