gpt4 book ai didi

java - 如何从纯文本文件中提取嵌入的 XML 内容?

转载 作者:行者123 更新时间:2023-11-30 09:36:11 26 4
gpt4 key购买 nike

我有一个巨大的文本文件,我想编写一个程序,它可以只从文件中提取 XML 并保存它。

是否有直接的 API 或比拆分/修剪从文件读取的字符串更好的解决方案。

例子:文件的一小部分:

#---------- #1 :  ----------#
<MSG_INFO>
<message type="TextMessage" messageSelector="" originationTimestamp="" receiveTime="" jmsServerTimestamp="" jmsMsgExpiration="">
<header JMSDestinationType="Generic" JMSDeliveryMode="2" />
<properties>
<property name="messageTopic" type="String">xyz</property>
</properties>
</message>

 BodyLength=1476
<?xml version="1.0"?>
<catalog>
<book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications
with XML.</description>
</book>
<book id="bk102">
<author>Ralls, Kim</author>
<title>Midnight Rain</title>
<genre>Fantasy</genre>
<price>5.95</price>
<publish_date>2000-12-16</publish_date>
<description>A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.</description>
</book>

最佳答案

通常 XML 文件是一种文本文件,因此要么您有一个 XML 文件,要么您有一个包含多个 XML 片段的文件。

如果是前者,您需要了解 XML 处理(SAX、DOM 等)以获取 XML 文档的结构化内容,然后您可以使用其结构保存该内容。这在想要重新格式化 XML 文档时很有用(例如,在嵌套标签中使用制表符或将所有内容放在一行中)。

如果是后者,则需要编写解析器,然后使用XML处理工具。第一个解析器将寻找任何看起来像是开放 XML 标签的东西,然后跟踪标签在文本文件中的位置,计算后续的打开和关闭标签,直到它检测到它离开了初始标签的顶级嵌套.然后它需要将嵌入的文本 block (不传递文档的其余部分)传递给适当的 XML 解析工具,这可能会形成 XML 的表示 View ,然后可能会重新处理回文本以保存在它的自己的文件。

当然,后者可以优化为在检测到开始和结束边界后不实际解析 XML;但是,如果不实际解析 XML,则无法保证生成的文本 block 实际上是有效的 XML。

关于java - 如何从纯文本文件中提取嵌入的 XML 内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10938821/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com