Giả sử tôi có XML như thế này:Làm thế nào để thụt lề các thuộc tính khi xml in đẹp trong python?
<graph label="Test" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:cy="http://www.cytoscape.org" xmlns="http://www.cs.rpi.edu/XGMML" directed="1">
<foo>...</foo>
</graph>
Tên phần tử đầu tiên với tất cả các thuộc tính của nó đều xuất hiện trên cùng một dòng.
Tôi đã thấy cách khá in cây nguyên tố, sử dụng lxml, với mã như thế này:
from lxml import etree
...
def prettyPrintXml(filePath):
assert filePath is not None
parser = etree.XMLParser(resolve_entities=False, remove_blank_text=True,
strip_cdata=False)
document = etree.parse(filePath, parser)
print(etree.tostring(document, pretty_print=True, encoding='utf-8'))
... nhưng sử dụng đó, mọi phần tử xuất hiện trên cùng một dòng.
Có câu thần chú nào để nói với máy in đẹp để chèn dòng mới giữa các thuộc tính phần tử sao cho, ví dụ, độ dài dòng không vượt quá 80 characater?
Tôi muốn kết quả tìm kiếm một cái gì đó như thế này:
<graph label="Test"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cy="http://www.cytoscape.org"
xmlns="http://www.cs.rpi.edu/XGMML" directed="1">
<foo>...</foo>
</graph>
ps: Tôi không muốn dùng đến subprocess
và xmllint