TransformerFactory破坏了<html>标记内的<input>和<br>标记

Guillaume Girod-Vitouchkina

通过简单的代码解析和重写简单的xml,此操作会发生一些奇怪的事情

输入:

<html>
<input></input>
</html>

给出OUTPUT(格式不正确):

<html>
<input>
</html>

<输入/>或<br />也会发生相同的情况。

它不会在<html2>中与其他标签一起出现,...

该代码是经典的:

// READ XML
DocumentBuilderFactory builderFactory =DocumentBuilderFactory.newInstance();
builderFactory.setNamespaceAware(true);
DocumentBuilder builder = builderFactory.newDocumentBuilder();

// PARSE
Document document = builder.parse(new InputSource(new StringReader(_xml_source)));

// WRITE XML

TransformerFactory transFactory = TransformerFactory.newInstance();
Transformer transformer = transFactory.newTransformer();
StringWriter buffer = new StringWriter();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
transformer.transform(new DOMSource(document), new StreamResult(buffer));
String output = buffer.toString();

它是一个已知的错误吗?

安德烈亚斯

XSLT定义的输出方法,其可以是xmlhtml,或text

规范说,html如果根节点为<html>,则默认输出方法应,否则为xml

使用该xml方法,您将获得<input/>

使用该html方法,您会得到的<input>因为HTML规范是这样说的

如果需要,可以显式给出输出方法:

transformer.setOutputProperty(OutputKeys.METHOD, "xml");

这样带有<html>根节点的文档将输出XML,即<input/>

引号

XSLT输出方法

method属性的默认值选择如下。如果

  • 结果树的根节点具有子元素,
  • 结果树的根节点(即文档元素)的第一个元素子元素的扩展名称具有本地部分html(大小写任意组合)和空名称空间URI,并且
  • 结果树根节点的第一个元素子元素之前的所有文本节点仅包含空格字符,

那么默认的输出方法是html; 否则,默认输出方法为xml如果没有xsl:output元素或没有xsl:output元素为method属性指定值,则应使用默认输出方法

HTML空标签

某些HTML元素类型没有内容。例如,换行符BR没有内容;它的唯一作用是终止一行文本。这样的元素永远不会带有结束标签文档类型定义和规范文本指示元素类型是否为空(不包含任何内容),或者,如果可以包含内容,则视为合法内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jsf html标记内的值

来自分类Dev

用<br>标记替换\ n

来自分类Dev

XQuery和空HTML标记

来自分类Dev

Elm-Select标记内的Dynamic Html Option标记

来自分类Dev

脚本标记内的HTML-无法识别宽度和高度

来自分类Dev

<Script>标记内的HTML代码

来自分类Dev

替换html标记内的单词

来自分类Dev

HTML / CSS -lineheight是否会影响<br>标记?

来自分类Dev

HTML <input>标记使用无效的“值”

来自分类Dev

使用硒提取<br>标记之前和之后的数据

来自分类Dev

自动将HTML标记替换为“ <br>”

来自分类Dev

如何从mysql数据中删除除<br>之外的HTML标记?

来自分类Dev

HTML元标记和HTTPS

来自分类Dev

如何不标记<br>

来自分类Dev

您可以在HTML <button>标记中包装诸如<label>和<input>之类的表单元素吗?

来自分类Dev

HTML编辑器删除<table>标记内的FreeMarker标记

来自分类Dev

使用JavaScript在html标记内创建html标记?

来自分类Dev

使用jsoup的HTML DOM的标记深度和最大标记深度

来自分类Dev

XQuery和空HTML标记

来自分类Dev

如何在HTML的meta标记内添加Blogger <data:>标记

来自分类Dev

Rails标记(:br)不被视为html_safe

来自分类Dev

逻辑和标记,HTML和PHP

来自分类Dev

jQuery的:$(this).next()。focus(); 如果<input>标记后跟<td>或<br>标记,则将不起作用

来自分类Dev

html元素内的角度标记

来自分类Dev

文本区域标记内的html标记可能吗?

来自分类Dev

将HTML标记嵌入rails标记内

来自分类Dev

HTML标记内的Javascript

来自分类Dev

将JSON \ n转换为HTML <br>标记

来自分类Dev

ReactJs:更改<input>标记内的状态

Related 相关文章

热门标签

归档