0

以下のコードをご覧ください。これを使用して、Pythonを使用してxmlを生成しています。

from lxml import etree


# Some dummy text
conn_id = 5
conn_name = "Airtelll"
conn_desc = "Largets TRelecome"
ip = "192.168.1.23"

# Building the XML tree
# Note how attributes and text are added, using the Element methods
# and not by concatenating strings as in your question
root = etree.Element("ispinfo")
child = etree.SubElement(root, 'connection',
                 number = str(conn_id),
                 name = conn_name,
                 desc = conn_desc)
subchild_ip = etree.SubElement(child, 'ip_address')
subchild_ip.text = ip

# and pretty-printing it
print etree.tostring(root, pretty_print=True)

これにより、次のものが生成されます。

<ispinfo>
  <connection desc="Largets TRelecome" number="5" name="Airtelll">
    <ip_address>192.168.1.23</ip_address>
  </connection>
</ispinfo>

しかし、私はそれを次のようにしたいと思います:

<ispinfo>
  <connection desc="Largets TRelecome" number='1' name="Airtelll">
    <ip_address>192.168.1.23</ip_address>
  </connection>
</ispinfo>

平均数属性は一重引用符で囲む必要があります。任意のアイデア....どうすればこれを達成できますか

4

1 に答える 1

0

これを行うためのフラグはlxmlにないため、手動操作に頼る必要があります。

import re
re.sub(r'number="([0-9]+)"',r"number='\1'", etree.tostring(root, pretty_print=True))

しかし、なぜあなたはこれをしたいのですか?化粧品以外に違いはありませんので。

于 2012-05-28T12:09:20.630 に答える