Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从xml文档中提取纯文本的最简单方法是什么?_Java_Xml - Fatal编程技术网

Java 从xml文档中提取纯文本的最简单方法是什么?

Java 从xml文档中提取纯文本的最简单方法是什么?,java,xml,Java,Xml,我有一些xml格式的电子书。使用处理说明(例如,)对书籍页面进行标记。我需要以纯文本的形式提取这本书的内容,每次提取一页,并将每一页保存为文本文件。做这件事最好的方法是什么?我可能会用castor来做这件事。它是一个java工具,允许您指定java对象的绑定,然后您可以将其作为文本输出到文件中您需要一个电子书呈现器来呈现您的书籍所采用的格式(如果它们使用反斜杠作为处理指令,我高度怀疑它是XML)。此外,XPath也很有用,如果您只想获取实际文本,只需对所有文本使用//text()。您可以尝试将其

我有一些xml格式的电子书。使用处理说明(例如,
)对书籍页面进行标记。我需要以纯文本的形式提取这本书的内容,每次提取一页,并将每一页保存为文本文件。做这件事最好的方法是什么?

我可能会用castor来做这件事。它是一个java工具,允许您指定java对象的绑定,然后您可以将其作为文本输出到文件中

您需要一个电子书呈现器来呈现您的书籍所采用的格式(如果它们使用反斜杠作为处理指令,我高度怀疑它是XML)。此外,XPath也很有用,如果您只想获取实际文本,只需对所有文本使用//text()。

您可以尝试将其转换为YAML并在字处理器中编辑它,然后一个简单的宏就可以将其修复

我只是浏览了这个XML到YAML转换实用程序——它很小,但我没有测试它或其他任何东西


将XSL样式表与
一起使用

现在,您甚至可以在eclipse中调试样式表。

假设需要将其集成到Java程序中(如标记所示),最简单的方法可能是使用SAX解析器,如提供的。为和编写ContentHandler回调

调用p-i处理程序时,打开一个新的输出文件

调用文本处理程序时,将字符数据复制到当前打开的输出文件中

有一些有用的示例代码

但是如果不需要将其集成到Java程序中,我可能会使用XSLT2.0()。XSLT1.0将不允许多个输出文档,但XSLT2.0将允许多个输出文档,并且它还将使按“里程碑标记”(您的“pg”处理指令)进行分组变得更容易。如果您对这种方法感兴趣,请询问。。。并提供有关输入文档结构的更多信息

p.S.即使您确实需要将其集成到Java程序中,您也可以从Java调用XSLT,例如,Saxon是用Java编写的。但是,我认为,如果您只是处理PI和文本,那么使用SAX解析器就不那么麻烦了。

您可以使用以下方法来完成此操作:

如果使用maven,您可能需要以下两种:

         <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>1.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-parsers</artifactId>
            <version>1.13</version>
        </dependency>

org.apache.tika
提卡岩芯
1.13
org.apache.tika
提卡解析器
1.13

这不会告诉他在何处进行分割,以便将每个页面放入单独的输出文件中。
         <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-core</artifactId>
            <version>1.13</version>
        </dependency>
        <dependency>
            <groupId>org.apache.tika</groupId>
            <artifactId>tika-parsers</artifactId>
            <version>1.13</version>
        </dependency>