2010-05-31 193 views
1

我有大約8000個需要轉換爲文本文件的xml文件。文本文件必須包含xml文件的標題,描述和關鍵字,而不包含標籤,並且還要刪除其他元素和屬性。換句話說,我需要創建8000個文本文件,其中包含XML文件的標題,描述和關鍵字。我需要系統地編寫這些代碼。任何幫助將不勝感激。提前致謝。如何將Xml文件轉換爲文本文件

+0

請在我的新崗位感謝看看我的樣品在 http://stackoverflow.com/questions/2941510/how-to-convert-xml-files-to-text-files-2 – Jason 2010-05-31 05:40:09

回答

0

有幾種可能性。如果它是簡單的XML,您可以像讀取任何其他文本文件一樣閱讀它,過濾掉尖括號並添加自己的戰略位置標點符號。或者,您可以打開一個XML閱讀器和一個文本編寫器,並以任何您想要的方式輸出它。

如果你讀了從文件夾中的文件名到一個集合,可以遍歷它們和處理所有的文件自動。

+0

嘿羅伯特, 感謝您的回覆。你介意一下,如果你能幫我找一些網站供參考,因爲我對這個話題真的很陌生,而且我的上司急着要我去做。非常感謝您的回覆。 – Jason 2010-05-31 04:10:20

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 

或任何其他格式的您正在尋找。

+0

我很癢地回答說,xsl會是一個很好的解決方案,除了每次我必須實施xsl時,都會花費大量工作來使編程語言x按照上帝的意圖使用xsl。總是讓你的工作記住你,並以卓越的成績+1。 – Gabriel 2010-05-31 05:08:32

+0

請在我的新帖子看看我的示例感謝 http://stackoverflow.com/questions/2941510/how-to-convert-xml-files-to-text-files-2 – Jason 2010-05-31 05:28:04

0

我的建議是使用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在任何工作)。

-1

當我複製短信從手機到一個文件,這是一個.xml格式,並有符號和字符在每個字之間,我想編輯那些出我有類似的問題。所以我下載了Notepad ++並在其中打開了.xml文件。假設你想刪除<title>的所有實例。突出顯示(示例文本)並單擊「替換」圖標(它是藍色的b →上方工具欄中的圖標)。它將在「查找內容」字段中顯示突出顯示的文本,然後將「替換爲」字段留空並選擇全部替換,它將刪除(示例文本)的所有實例。爲所有的符號和文字做這些,並替換你想要的或應該是的。我有超過4800線,它運作良好。

+0

手動執行此操作8000個文件單獨聽起來不是很有趣。 – 2017-03-25 02:38:02