Как конвертировать XML-файлы в текстовые файлы - PullRequest
1 голос
/ 31 мая 2010

У меня есть около 8000 XML-файлов, которые необходимо преобразовать в текстовые файлы. Текстовый файл должен содержать заголовок, описание и ключевые слова XML-файла без тегов, а также с удалением других элементов и атрибутов. Другими словами, мне нужно создать 8000 текстовых файлов, содержащих заголовок, описание и ключевые слова XML-файла. Мне нужно, чтобы кодирование выполнялось систематически. Любая помощь будет принята с благодарностью. Заранее спасибо.

Ответы [ 5 ]

4 голосов
/ 31 мая 2010

Переход от XML к тексту пахнет как работа для XSLT - это язык преобразования на основе XML, который может принимать ввод XML и преобразовывать его во все текстовое на стороне вывода.

Вы можете прочитать о XSLT на многих веб-сайтах - одном из лучших учебных пособий в W3Schools one.

Поскольку вы не опубликовали ни одного примера 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 голос
/ 31 мая 2010

Мое предложение будет использовать 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 работает во всем).

0 голосов
/ 25 июня 2017

Вы можете использовать бесплатную версию Flexter XML converter для анализа до 50 МБ сжатых файлов XML за один раз. Я написал пост в блоге, который проведет вас через простой процесс преобразования XML в CSV / TSV .

0 голосов
/ 25 марта 2017

У меня были похожие проблемы, когда я копировал текстовые сообщения со своего телефона в файл, и это был формат .xml, и между каждым словом были символы и символы, и я хотел их отредактировать. Поэтому я скачал Notepad ++ и открыл в нем файл .xml. Скажем, вы хотите удалить все экземпляры <title>. Вы выделите (образец текста) и щелкните значок «Заменить» (это синий значок на панели инструментов вверху). Он будет иметь выделенный текст в поле «Найти что», а затем вы оставите поле «Заменить» пустым и выберите «Заменить все», и он избавится от всех экземпляров (образец текста). Сделайте это для всех символов и текста и замените на то, что вы хотите или должно быть. У меня было более 4800 строк, и это прекрасно работало.

0 голосов
/ 31 мая 2010

Есть несколько возможностей. Если это простой XML, вы можете прочитать его, как любой другой текстовый файл, отфильтровать угловые скобки и добавить собственную стратегически пунктуацию Или вы можете открыть средство чтения XML и средство записи текста и выводить его любым удобным для вас способом.

Если вы прочитали имена файлов из папки в коллекцию, вы можете просмотреть их и автоматически обработать все файлы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...