Java:如何解析XML工具使用的html字符串?
哪个库允许我对html字符串计算xpath 我尝试过使用javax包,但似乎失败了:Java:如何解析XML工具使用的html字符串?,java,xml,parsing,Java,Xml,Parsing,哪个库允许我对html字符串计算xpath 我尝试过使用javax包,但似乎失败了: String docroot = "<div><i>items <b>sold</b></i></div>"; XPath xxpath = XPathFactory.newInstance().newXPath(); InputSource docroot = new InputSource(new StringReader(subele
String docroot = "<div><i>items <b>sold</b></i></div>";
XPath xxpath = XPathFactory.newInstance().newXPath();
InputSource docroot = new InputSource(new StringReader(subelements));
String result = (String) xxpath.evaluate("//b", docroot, XPathConstants.STRING);
String docroot=“已售出物品”;
XPath xxpath=XPathFactory.newInstance().newXPath();
InputSource docroot=新的InputSource(新的StringReader(子元素));
字符串结果=(字符串)xxpath.evaluate(“//b”,docroot,XPathConstants.String);
您需要一个足够宽松的解析器,可以在HTML中将其解析为XML,而这是很少见的。我相信TagSoup能做到,但我已经很久没有看过了
(更多信息请点击此处:)
有什么理由不能只提供一个XHTML片段吗?您需要一个足够宽松的解析器,可以将HTML解析为XML,而这是很少见的。我相信TagSoup能做到,但我已经很久没有看过了 (更多信息请点击此处:)
有什么原因不能只提供一个XHTML代码段吗?您需要一个Java HTML解析库来生成有效的XML文档对象。基于这种不科学的观点,它似乎会起作用 从HTML清理器站点: 虽然主要动机是 为XML准备普通HTML 使用XPath、XQuery和 XSLT,由生成的结构化数据 HtmlCleaner可能会被消费,并且 以其他方式处理
这提供了一个如何读入HTML字符串、执行XPath查询和处理结果的示例 您需要一个可以生成有效XML文档对象的Java HTML解析库。基于这种不科学的观点,它似乎会起作用 从HTML清理器站点: 虽然主要动机是 为XML准备普通HTML 使用XPath、XQuery和 XSLT,由生成的结构化数据 HtmlCleaner可能会被消费,并且 以其他方式处理
这提供了一个如何读入HTML字符串、执行XPath查询和处理结果的示例 请尝试以下操作,您的代码示例中有一些错误:
import java.io.StringReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;
public class Demo {
public static void main(String[] args) throws Exception {
String docroot = "<div><i>items <b>sold</b></i></div>";
XPath xxpath = XPathFactory.newInstance().newXPath();
InputSource inputSource = new InputSource(new StringReader(docroot));
String result = (String) xxpath.evaluate("//b", inputSource, XPathConstants.STRING);
System.out.println(result);
}
}
导入java.io.StringReader;
导入javax.xml.xpath.xpath;
导入javax.xml.xpath.XPathConstants;
导入javax.xml.xpath.XPathFactory;
导入org.xml.sax.InputSource;
公开课演示{
公共静态void main(字符串[]args)引发异常{
String docroot=“已售出的物品”;
XPath xxpath=XPathFactory.newInstance().newXPath();
InputSource InputSource=新的InputSource(新的StringReader(docroot));
字符串结果=(字符串)xxpath.evaluate(“//b”,inputSource,XPathConstants.String);
系统输出打印项次(结果);
}
}
请尝试以下操作,您的代码示例中有一些错误:
import java.io.StringReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;
public class Demo {
public static void main(String[] args) throws Exception {
String docroot = "<div><i>items <b>sold</b></i></div>";
XPath xxpath = XPathFactory.newInstance().newXPath();
InputSource inputSource = new InputSource(new StringReader(docroot));
String result = (String) xxpath.evaluate("//b", inputSource, XPathConstants.STRING);
System.out.println(result);
}
}
导入java.io.StringReader;
导入javax.xml.xpath.xpath;
导入javax.xml.xpath.XPathConstants;
导入javax.xml.xpath.XPathFactory;
导入org.xml.sax.InputSource;
公开课演示{
公共静态void main(字符串[]args)引发异常{
String docroot=“已售出的物品”;
XPath xxpath=XPathFactory.newInstance().newXPath();
InputSource InputSource=新的InputSource(新的StringReader(docroot));
字符串结果=(字符串)xxpath.evaluate(“//b”,inputSource,XPathConstants.String);
系统输出打印项次(结果);
}
}
请记住下次扩展“似乎失败”的实质性内容。请记住下次扩展“似乎失败”的实质性内容。