Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java:如何解析XML工具使用的html字符串?_Java_Xml_Parsing - Fatal编程技术网

Java:如何解析XML工具使用的html字符串?

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

哪个库允许我对html字符串计算xpath

我尝试过使用javax包,但似乎失败了:

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);
系统输出打印项次(结果);
}
}

请记住下次扩展“似乎失败”的实质性内容。请记住下次扩展“似乎失败”的实质性内容。