- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在通过 Java 应用程序上的 SQL 查询生成 pdf。我有 4M pdf 需要打印。
关于第 15092 pdf。我遇到了这个错误
Invalid xml character (unicode 0xc) was found in the element content of the document
我尝试替换为其他博客所说的内容。
html = html.replaceAll("\000"," ");
html = html.replaceAll("/\u000c+/g", "");
我不知道我刚刚将它们放入我的 html 中。
有人有想法吗?
谢谢!
最佳答案
有多种方法可以进行替换。我更详细地描述了它们,因为我认为理解它们比仅仅复制代码更重要。
简单的逐字符替换。这适用于您的情况,因为您只想替换某个字符的出现。由于您的角色是控制字符,您(通常)不能直接插入它,而是通过以下方式之一插入:
html=html.replace('\u000c', ' ');//十六进制值 == 0xc
html=html.replace('\14', ' ');//0xc == 014
html=html.replace('\f', ' ');//字符 0xc 是换页符
Unicode 引用有点棘手,因为它们是在 Java 解析器之前处理的,因此它们不能处理对 Java 语言具有特殊含义的字符。但通过换页就可以了。
使用正则表达式。对于此任务来说,这是一个过大的解决方案,但它的工作原理是执行单个字符的精确匹配是正则表达式语法的有效子集。因此,您可以使用上述所有变体,并通过用 replaceAll
替换方法名称来构建基于正则表达式的解决方案,并将参数更改为字符串,例如html=html.replaceAll("\14", "");
在这种情况下,字符引用仍然由编译器生成,对正则表达式引擎没有特殊含义。当积极使用正则表达式引擎时,您有与 Java 语言的字符引用类似的选择:
html=html.replaceAll("\\u000c", "");
html=html.replaceAll("\\x0c", "");//没有 Java 等效项
html=html.replaceAll("\\014", "");//注意细微的差别
html=html.replaceAll("\\f", "");
不同之处在于,这些序列在 Java 语言级别插入一个反斜杠(通过双反斜杠),形成由正则表达式引擎处理的正则表达式。因此,Unicode 引用适用于此处的所有字符。整个语法描述如下: http://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html
但正如您已经说过的,对于您的任务,简单的字符匹配就足够了。
那么为什么你的例子不起作用呢?
html = html.replaceAll("\000","");
序列 \0
被解释为对控制字符 0x0 的引用,并且后面跟着两个零。因此它尝试查找控制字符 NUL
后跟两个零的序列。
html = html.replaceAll("/\u000c+/g", "");
该序列由字符 '/'
'\f'
(通过正确的 unicode 序列定义) '+'
'/' 组成
'g'
。只有加号在 Java 的正则表达式中具有特殊含义。它的意思是“至少一个”和“尽可能多地找到”。因此,此代码会查找字符 0xc 的序列,但前提是它们由斜线框起来并后跟 'g'
。
关于java - XML 字符 <Unicode : 0xc> was found in the element content of the document,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693803/
我正在尝试计算 iFrame 的高度,但不明白为什么 document.body.offsetHeight + document.body.bottomMargin 不等于 document.docu
我正在使用 Node/Mongoose/MongoDB 并尝试构建一个轮询应用程序。一个关键需求是跟踪单个用户对同一民意调查的响应如何随时间变化(他们一遍又一遍地进行同一民意调查)。 我有一个用户模型
首先,我不是普通的博主,我很困惑。如果我的问题不符合要求,请指导我。我会努力改进的。 我已提交 Microsoft Code Review 的 Microsoft CRM 插件。我是 JavaScri
谁能解释为什么使用类似的东西: gci -force "\\computername\c$\users\username\Documents" -recurse 或者 gci -force "\\co
It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, over
这个问题已经有答案了: What is the (function() { } )() construct in JavaScript? (28 个回答) 已关闭 6 年前。 说实话,一开始我以为我可
document.getElementsByTagName("*") 适用于 IE/Firefox/Opera,但不适用于 Chrome 和 Safari。 document.all 适用于 IE/C
这个问题在这里已经有了答案: What is the difference between Document and document in JavaScript? (2 个答案) 关闭 8 年前。
我以某种方式发现将事件监听器添加到文档的行为有点奇怪。虽然向 HTMLElements 添加监听器工作正常,但向文档添加监听器不起作用。但奇怪的是,使用 jQuery 可以让它工作。 那么有人可以解释
谁能告诉我这两个 JavaScript 命令之间的区别? 这两个跨主要浏览器的兼容性是什么?我知道 documentElement 与大多数浏览器兼容。 谢谢 最佳答案 document.docume
什么时候应该使用 document.all 与 document.getElementById? 最佳答案 document.all 是 Microsoft 对 W3C 标准的专有扩展。 getEle
当升级到 react-native 0.61.2 时,这个问题出现了。我做到了从手机中删除了 apk 和自动链接使用 react-native link 然后 react-native run-and
当升级到 react-native 0.61.2 时,这个问题出现了。我做到了从手机中删除了 apk 和自动链接使用 react-native link 然后 react-native run-and
我将收到 tungstenite::Message ,它将包含来自客户端的bson文档。我可以将tungstenite::Message转换为Vec,但是如何在服务器端将其转换回 bson::docu
我这里有一个简单的疑问: 文档对象范围位于浏览器选项卡内:我的意思是如果我设置document.tab1 ='tab1' 在一个浏览器选项卡中 它在其他选项卡中不可用。 但是 document.coo
我经常使用并看到推荐的 dom 访问结构,例如这样动态地将内容添加到页面: loader = document.createElement('script'); loader.src = "myurl
我对 JQuery 还很陌生。我正在使用this JQuery 函数在元素上显示工具提示。 我根据我的需要(在这个社区的帮助下)以这种方式编辑了代码: $(document).ready(functi
我想知道哪个是运行js代码的正确方法,该代码根据窗口高度计算垂直菜单的高度并按时设置,不晚不早。 我正在使用 document.ready 但它并没有真正帮助我解决这个问题,它有时没有设置,我必须重新
我正在浏览一个 js 文件并发现这个声明var dataobj=document.all? document.all.id_name : document.getElementById("id_nam
想知道何时使用,这适用于什么浏览器? if (document.all&&document.getElementById) { // Some code block } 最佳答案 我认为没有任何重要的
我是一名优秀的程序员,十分优秀!