当前位置: 首页 > 面试题库 >

如何在读取文件以生成XML DOM时忽略空格

司马飞鸿
2023-03-14
问题内容

我正在尝试读取文件以生成DOM文档,但是该文件包含空格和换行符,并且我试图忽略它们,但是我不能:

DocumentBuilderFactory docfactory=DocumentBuilderFactory.newInstance();
docfactory.setIgnoringElementContentWhitespace(true);

我在Javadoc中看到,只有在启用了验证标志的情况下,setIgnoringElementContentWhitespace方法才起作用,但是我没有文档的DTD或XML
Schema。

我能做什么?

更新资料

我不喜欢引入mySelf <!ELEMENT
…声明的想法,并且我尝试了Tomalak所指向的论坛中提出的解决方案,但是它不起作用,因为我在Linux环境中使用了Java
1.6。我认为如果没有提出更多建议,我将提出一些忽略空白文本节点的方法


问题答案:

“ IgnoringElementContentWhitespace”不是要删除 所有
纯空白文本节点,而是删除其父级在架构中被描述为具有ELEMENT内容的空白节点,也就是说,它们仅包含其他元素,而从不包含文本。

如果没有使用架构(DTD或XSD),则元素内容默认为MIXED,因此此参数将永远无效。(除非解析器提供了非标准的DOM扩展,以将所有未知元素都视为包含ELEMENT内容,据我所知,Java可用的元素不包含。)

您可以在解析器中加入文档,以包含模式信息,例如,通过向包含<!ELEMENT …>声明的<!DOCTYPE …
[…]>声明添加内部子集,然后使用IgnoringElementContentWhitespace参数。

或者,可能更容易,您可以在后处理中或使用LSParserFilter来删除空白节点。



 类似资料:
  • 现在,我想存储一个如下所示的文本文件: 1个苹果 香蕉2根 3橙色 4只山猫 5卡布奇诺 以此类推到数据结构中。最好的方法是以某种方式将int映射到字符串,还是我应该制作一个数组列表?当我存储单词本身时,我应该忽略int和任何空格,只保留单词本身。在行中读取时如何忽略int?这是我现在拼凑的代码: } 提前感谢您的帮助!!

  • 问题内容: 在Python中,我刚刚阅读了一个文本文件中的一行,并且我想知道如何编写代码以忽略该行开头带有#的注释。 我认为应该是这样的: 但是我是Python的新手,我不知道语法 问题答案: 您可以使用startswith() 例如

  • 问题内容: 我有一些代码可以从文件中读取行,我想识别行何时开始或fisrt字符(非空白)为’ ‘并忽略它,因此在while语句中添加如下内容 我有类似的东西: 如何完成代码? 问题答案:

  • 问题内容: 我有一个问题,当java应用程序读取Excel文件.xlsx扩展名时,该应用程序正常工作,但是在工作簿中有很多工作表,其中1、2个工作表正确读取,但是当读取3个工作表时,没有读取所有单元格当我打开并从Excel文件中检查时,单元格存在空值,但是当apache poi读取该单元格时,该单元格将被忽略。原因是什么? 更新资料 在读取excel文件上方,虽然我在一行中检查了Excel文件20

  • 我有一个问题,当java应用程序读取Excel文件.xlsx扩展时,应用程序正常工作,但工作簿中有很多工作表,1、2个工作表正确读取,但当读取3个工作表时,没有读取所有单元格,当我打开并检查Excel文件时,单元格存在空值,但当apache poi读取它时,单元格只是忽略了空单元格。什么是事业?更新 上面读的是excel文件,而我检查的excel文件中有一行20个单元格,而它读的有的行只有14行。

  • 问题内容: 我有一些代码可以读取名称文件并创建列表: 每个名称用换行符分隔,如下所示: 我想忽略仅包含空格的任何行。我知道我可以通过以下方式来实现:创建一个循环并检查读取的每一行,然后将其添加到列表(如果不是空白的话)。 我只是想知道是否还有更Pythonic的方法? 问题答案: 我将堆栈生成器表达式: 现在,是所有非空白行。这将使您不必在线路上两次打电话。如果需要行列表,则可以执行以下操作: 您