java xml 查询_在java中查询xml的最快方法

如果您的id属性的类型为xs:ID,并且您的文档具有XML架构,则可以使用Document.getElementById(String)方法.我将在下面举例说明.

XML Schema

xmlns="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.example.org/schema"

xmlns:tns="http://www.example.org/schema"

elementFormDefault="qualified">

XML输入(input.xml)

演示

您需要在DocumentBuilderFactory上设置Schema实例以使一切正常.

import java.io.File;

import javax.xml.XMLConstants;

import javax.xml.parsers.*;

import javax.xml.validation.*;

import org.w3c.dom.*;

public class Demo {

public static void main(String[] args) throws Exception {

SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

Schema schema = sf.newSchema(new File("src/forum17250259/schema.xsd"));

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

dbf.setNamespaceAware(true);

dbf.setSchema(schema);

DocumentBuilder db = dbf.newDocumentBuilder();

Document document = db.parse(new File("src/forum17250259/input.xml"));

Element result = document.getElementById("EFGH");

System.out.println(result);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你用 Java 的网络库(如 HttpURLConnection 或 HttpClient)请求某个网页,获取的 HTML 代码可能只是一个空的占位符,因为该网页的部分内容可能是在客户端通过 JavaScript 动态生成的。 要获取动态生成的 HTML 内容,可以考虑使用一些支持 JavaScript 执行的 HTML 解析库,如 HtmlUnit 或 Selenium WebDriver。这些库可以模拟浏览器行为,执行网页JavaScript 脚本,并获取动态生成的 HTML 内容。 以下是使用 HtmlUnit 获取动态生成的 HTML 内容的示例代码: ``` // 创建一个 WebClient 实例,用于执行 JavaScript 脚本 WebClient webClient = new WebClient(); // 设置 WebClient 的一些属性,如启用 JavaScript、忽略 SSL 证书等 webClient.getOptions().setJavaScriptEnabled(true); webClient.getOptions().setUseInsecureSSL(true); webClient.getOptions().setCssEnabled(false); webClient.getOptions().setThrowExceptionOnScriptError(false); // 发送 HTTP 请求并获取 HTML 页面 HtmlPage page = webClient.getPage("http://www.example.com"); // 执行 JavaScript 脚本,等待页面加载完成 webClient.waitForBackgroundJavaScript(10000); // 获取动态生成的 HTML 内容 String html = page.asXml(); ``` 上述代码,我们使用 HtmlUnit 创建了一个 WebClient 实例,并设置了一些属性,如启用 JavaScript、忽略 SSL 证书等。然后,发送 HTTP 请求并获取网页的 HTML 页面。接着,使用 `webClient.waitForBackgroundJavaScript(10000)` 方法等待 JavaScript 脚本执行完成。最后,使用 `page.asXml()` 方法获取整个网页的 HTML 内容,其包括动态生成的内容。 需要注意的是,使用 HtmlUnit 或 Selenium WebDriver 获取动态生成的 HTML 内容可能会比较慢,因为它们需要模拟浏览器行为,并执行 JavaScript 脚本。如果只需要获取静态的 HTML 内容,可以使用上面提到的 Jsoup 或其他的 HTML 解析库来解析 HTML 代码,速度会更快。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值