XPath(JAXP)でTagSoupを使用しようとしています。TagSoup(またはXMLReader)からSAXパーサーを取得する方法を知っています。しかし、そのSAXパーサーを使用するDocumentBuilderを作成する方法を見つけることができませんでした。それ、どうやったら出来るの?
ありがとうございました。
編集:とても一般的で申し訳ありませんが、JavaXMLAPIはとても苦痛です。
EDIT2:
問題が解決しました:
public static void main(String[] args) throws XPathExpressionException, IOException,
SAXNotRecognizedException, SAXNotSupportedException,
TransformerFactoryConfigurationError, TransformerException {
XPathFactory xpathFac = XPathFactory.newInstance();
XPath xpath = xpathFac.newXPath();
InputStream input = new FileInputStream("/tmp/g.html");
XMLReader reader = new Parser();
reader.setFeature(Parser.namespacesFeature, false);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DOMResult result = new DOMResult();
transformer.transform(new SAXSource(reader, new InputSource(input)), result);
Node htmlNode = result.getNode();
NodeList nodes = (NodeList) xpath.evaluate("//span", htmlNode, XPathConstants.NODESET);
System.out.println(nodes.getLength());
}
EDIT3: