2012-12-03 35 views
9

Tôi có một tập hợp lớn các tệp xml hiện có và tôi đang cố gắng thêm một phần tử vào tất cả chúng (chúng là pom.xml cho một số dự án maven, và tôi đang cố thêm một phần tử gốc vào tất cả chúng). Sau đây là mã chính xác của tôi.lxml không thêm dòng mới khi chèn phần tử mới vào xml hiện tại

Vấn đề là đầu ra xml cuối cùng trong pom2.xml có phần tử parent hoàn chỉnh trong một dòng. Mặc dù, khi tôi tự in phần tử, nó viết nó thành 4 dòng như bình thường. Làm thế nào để in ra xml hoàn chỉnh với định dạng thích hợp cho phần tử parent?

from lxml import etree 

parentPom = etree.Element('parent') 
groupId = etree.Element('groupId') 
groupId.text = 'org.myorg' 
parentPom.append(groupId) 

artifactId = etree.Element('artifactId') 
artifactId.text = 'myorg-master-pom' 
parentPom.append(artifactId) 

version = etree.Element('version') 
version.text = '1.0.0' 
parentPom.append(version) 

print etree.tostring(parentPom, pretty_print=True) 

pom = etree.parse("pom.xml") 
projectElement = pom.getroot() 
projectElement.insert(0, parentPom) 

file = open("pom2.xml", 'wb') 
file.write(etree.tostring(projectElement, pretty_print=True)) 
file.close() 

Sản lượng in:

<parent> 
    <groupId>org.myorg</groupId> 
    <artifactId>myorg-master-pom</artifactId> 
    <version>1.0.0</version> 
</parent> 

Output của cùng một phần tử trong pom2.xml:

<parent><groupId>com.inmobi</groupId><artifactId>inmobi-master-pom</artifactId><version>1.0.1</version></parent><modelVersion>4.0.0</modelVersion> 

Trả lời

Các vấn đề liên quan