java - 在 xml 中存储 html 值

标签 java html xml xslt

尝试找出一种方法从 html 文件中删除特定信息(名称、描述、id 等),留下不需要的信息并将其存储在 xml 文件中。

我想尝试使用 xslt,因为它可以将 xml 转换为 html...但反过来似乎不起作用。

老实说,我不知道应该尝试使用什么其他语言来完成此任务。我知道基本的 java 和 javascript,但不确定它是否可以做到这一点。我在开始这个过程时有点迷失了。

我愿意接受任何建议/帮助。也愿意学习一门新语言,因为我这样做只是为了好玩。

最佳答案

有许多 Java 库用于处理格式不正确的 HTML 输入(根据 XML)。这些库还具有用于查询或操作文档的内置方法,但重要的是要认识到,一旦解析了文档,通常很容易将其视为一开始的 XML地点(使用标准 Java XML 接口(interface))。换句话说,你只需要这些库来解析格式错误的输入;他们提供的其他实用程序大多是多余的。

下面是一个示例,显示使用 HTMLCleaner 解析 HTML然后将该对象转换为标准 org.w3c.dom.Document:

TagNode tagNode = new HtmlCleaner().clean("<html><div><p>test");
DomSerializer ser = new DomSerializer(new CleanerProperties());
org.w3c.dom.Document doc = ser.createDOM(tagNode);

Jsoup ,只需解析输入并将其序列化为字符串:

String text = Jsoup.parse("<html><div><p>test").outerHtml();

并使用此处描述的方法之一将该字符串转换为 W3C 文档:

您现在可以使用标准 JAXP 接口(interface)来转换此文档:

TransformerFactory tFact = TransformerFactory.newInstance();
Transformer transformer = tFact.newTransformer();
Source source = new DOMSource(doc);
Result result = new StreamResult(System.out);
transformer.transform(source, result);

注意:向 tFact.newTransformer() 提供一些 XSLT 源代码,以执行比身份转换更有用的操作。

关于java - 在 xml 中存储 html 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8632473/

相关文章:

html - 如何在框内并排放置文本和按钮

xml - Mahout 的 XmlInputFormat 是否可以在不重写的情况下处理 gzip 压缩文件?

xml - 使用 Perl 的 XML 标签内的总和和平均值

java - SFTP 下载未完成

java - build.gradle 文件的 main-class 属性是什么?

java - 从哪里获得 openCV 的 jar?

javascript - d3js 在 map 上强制布局

html - 右侧栏中的社交媒体图标

Java解析另一个Json数组json.simple中的Json数组

java - 为什么 JAXB 生成的类具有 protected 成员,我该如何更改它?