XMLファイルにファイルを解析するために、このプログラムで私を助けてください

StackOverflow https://stackoverflow.com/questions/1511950

  •  19-09-2019
  •  | 
  •  

質問

)XMLファイルを入力テキストファイルを解析して生成し、b)は、SVG(またXML)ファイル。

入力されたテキストファイル(INPUT.TXT)は全国の農産物の物流センターとストレージ中心の数の記述を含みます。各ラインは、プロパティの数とそれぞれの単一の流通センター(dcenter)または保管センターのいずれかを記載します。各プロパティ名(たとえばコード)=との値で区切られます。

例(INPUT.TXT)

dcenter: code=d1, loc=San Jose, x=100, y=100, ctype=ct1
dcenter: code=d2, loc=San Ramon, x=300, y=200, ctype=ct2
storage: code=s1, locFrom=d1, x=50, y=50, rtype=rt1
storage: code=s2, locFrom=d1, x=-50,y=100, rtype=rt1

プログラムの所望の出力:

出力1

<?xml version="1.0"?>
<dcenters>
<dcenter code="d1">
<loc> San Jose </loc>
<x> 100 </x>
<y> 100 </y>
<ctype> ct1 </ctype>
</dcenter>
<storage code="S1">
<locFrom> d1 </locFrom>
<x> 150 </x>
<y> 150 </y>
<rtype> rt1 </rtype>
</storage>
<storage code="S2">
<locFrom> d1 </locFrom>
<x> 50 </x>
<y> 200 </y>
<rtype> rt1 </rtype>
</storage>

プログラムで私を助けてください。私は本当に感謝します。

役に立ちましたか?

解決

入力文字列sであると仮定する。直接割り当てからかfile.readから次のいずれか

s="""dcenter: code=d1, loc=San Jose, x=100, y=100, ctype=ct1
dcenter: code=d2, loc=San Ramon, x=300, y=200, ctype=ct2
storage: code=s1, locFrom=d1, x=50, y=50, rtype=rt1
storage: code=s2, locFrom=d1, x=-50,y=100, rtype=rt1"""

次に、あなたはこれをすることができます

print '<?xml version="1.0"?>'
print "<dcenters>"
for line in s.splitlines():
    type, fields = line.split(":")
    params = fields.split(",")
    code = params[0].split("=")[1].strip()
    print '<%s code="%s">' % (type, code)
    for p in params[1:]:
        ptype, pvalue = p.strip().split("=")
        print '<%s> %s </%s>' % (ptype, pvalue, ptype)
    print '</%s>' % type
print "</dcenters>"
d2はあなたのサンプル出力から欠落している理由は、

わかりません。私はそれが誤ってだと仮定します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top