よく検索しますが、欲しいものが見つかりません。
現在のページに xpath が存在するかどうかを制御したい。
私はjava/xml、phpなどで見つけました...しかし、Javaだけではありません。
xpath が存在する場合、現在のページをチェックインする簡単な方法を検索します。
ありがとうございました。
よろしく。
メソッドを使用できますjavax.xml.xpath.XPath.evalute
:
例:
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
JAXP API を使用している場合は、NODE-SET を返す XPath 式を使用して、返された NodeList が空かどうかを Java コードで確認できます。または、結果の型を BOOLEAN として指定することもできます。この場合、ブール値の結果が直接得られます。