2016-12-09 15 views
0

XMLデータをテキストファイルで再生しています。ほんの一般的なもの。XMLデータを手動で解析する方法(xml.etreeなし)

私はxml.etreeとそのコマンドで遊んでいましたが、今は手動でタグを取り除き、すべてのデータを新しいファイルに書き込む方法が不思議です。

タグを取り除くには、str.splitやループがたくさんかかるでしょう。

私は今を開始し、これを持って(働いていない、ただのコピーデータを):

def summarizeData(fileName): 
    readFile = open(fileName, "r").read() 
    newFile = input("") 
    writeFile = open(newFile, "w") 
    with open(fileName, "r") as file: 
     for tags in file: 
      Xtags = tags.split('>')[1].split('<')[0] 
    writeFile.write(readFile) 
    writeFile.close 

これまでのところ、それだけでコピーしたタグを含むデータを、。私はタグを分割することがトリックを行うと考えていましたが、何もしないようです。手動で行うことは可能か、xml.etreeを使用する必要がありますか?この行にはバックストレートwriteFileに...

readFile = open(fileName, "r").read() 

答えて

2

あなたはすべての変更が表示されない理由は、あなたがちょうどこのラインでreadFileにあなたがfileNameから読み出されたデータを書いているということです。あなたは(Xtagsなどで)挟ん行う

writeFile.write(readFile) 

何もreadFileに影響を与えませんので、そのままそれが書き戻さなっています。

小さな仕事で修正できる問題は別として... XMLの解析は、あなたが思っているほど単純ではありません。複数の行にまたがるタグ、属性値、コメント、CDATAセクションの中に現れる山括弧、その他の微妙な問題について考える必要があります。

要約:xml.etreeのような実際のXMLパーサーを使用します。

+0

ああ、まあ、私はxml.treeに固執するのがいいと思います。ありがとう。 :) – thatoneguy

関連する問題