如何将Xml文件转换为文本文件

时间:2010-05-31 03:45:34

标签: xml text

我有大约8000个xml文件需要转换为文本文件。文本文件必须包含没有标记的xml文件的标题,描述和关键字,以及删除其他元素和属性。换句话说,我需要创建8000个文本文件,其中包含xml文件的标题,描述和关键字。我需要有系统地完成编码。任何帮助将不胜感激。提前谢谢。

5 个答案:

答案 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多行,效果很好。

相关问题