我有大约8000个xml文件需要转换为文本文件。文本文件必须包含没有标记的xml文件的标题,描述和关键字,以及删除其他元素和属性。换句话说,我需要创建8000个文本文件,其中包含xml文件的标题,描述和关键字。我需要有系统地完成编码。任何帮助将不胜感激。提前谢谢。
答案 0 :(得分:4)
从XML到文本有点像XSLT的工作 - 它是一种基于XML的转换语言,可以接受XML输入并将其转换为基于输出端的任何文本。
您可以在许多网站上阅读XSLT,这是W3Schools一个更好的教程之一。
由于您没有发布任何示例XML,我不知道您的XML是什么样的,也不知道您的输出应该是什么。但假设它看起来像:
<?xml version="1.0" encoding="utf-8"?>
<root>
<title>Some Title</title>
<description>Some description</description>
<keywords>
<keyword>Keyword1</keyword>
<keyword>Keyword2</keyword>
<keyword>Keyword3</keyword>
<keyword>Keyword4</keyword>
</keywords>
</root>
您可以轻松编写XSLT转换以将其转换为
YourTextFile.txt
Some Title
Some Description
Keyword1,Keyword2,Keyword3,Keyword4
或您正在寻找的任何其他格式。
答案 1 :(得分:1)
我的建议是使用Python。您可以在设置时使用解释器来运行模式,命令行可以正确地设置这种类型。假设xml有效,这应该允许您以最小的麻烦获得最大的灵活性。
所以假设以下xml格式:
<root>
<title>Document Title</title>
<content>Some document content.</content>
<keywords>test, document, keyword</keywords>
</root>
并假设每个文档的输出应为:
Document Title
Some document content.
test, document, keyword
python代码可能类似于:
import sys
import os
from xml.etree.ElementTree import ElementTree
def Readthexml(f):
"""Read the file from the argument list and dump the title contents and keywords"""
xcontent = ElementTree()
xcontent.parse(f)
doc = [xcontent.find("title").text, xcontent.find("content").text, xcontent.find("keywords").text]
out = open(f + ".txt", "w")
out.write("\n\n".join(doc))
return True
def main(argv=None):
if argv is None:
argv = sys.argv
args = argv[1:]
for arg in args:
if os.path.exists(arg):
Readthexml(arg)
if __name__ == "__main__":
main()
您可以从中生成批处理文件以定期更新文件(假设它是一个Windows环境,虽然python可以在任何地方工作)。
答案 2 :(得分:0)
有几种可能性。如果它是简单的XML,您可以像任何其他文本文件一样阅读它,过滤掉尖括号并添加您自己的战略位置标点符号。或者,您可以打开XML阅读器和文本编写器,并以您想要的任何方式输出它。
如果您将文件夹中的文件名读入集合,则可以循环浏览它们并自动处理所有文件。
答案 3 :(得分:0)
您可以使用免费版本的Flexter XML converter一次解析最多50 MB的压缩XML文件。我写了一篇博客文章,引导您完成converting XML to CSV/TSV的简单过程。
答案 4 :(得分:-1)
当我将手机短信复制到文件中时,我遇到了类似的问题,它是.xml格式,每个单词之间都有符号和字符,我想编辑出来。所以我下载了Notepad ++并打开了.xml文件。假设您要删除<title>
的所有实例。您突出显示(示例文本)并单击“替换”图标(它是蓝色b→顶部工具栏中的图标)。它将在“查找内容”字段中显示突出显示的文本,然后将“替换为”字段留空并选择“全部替换”,它将删除(示例文本)的所有实例。对所有符号和文本执行此操作,并替换为您想要或应该使用的内容。我有4800多行,效果很好。