Hướng dẫn how to split xml file in python - làm thế nào để chia nhỏ tệp xml trong python

Tôi muốn chia một tệp XML thành nhiều tệp. Máy trạm của tôi rất giới hạn ở Sao Hỏa nhật thực với Xalan 2.7.1.

Tôi cũng có thể sử dụng Python, nhưng chưa bao giờ sử dụng nó trước đây.



    
        Doe
        Jon
        M
    
    
        Mustermann
        Max
        M
    

Làm thế nào tôi có thể biến đổi chúng để trông như thế này


    
        
            Doe
            Jon
            M
        
    

Tôi cần mọi "hàng" -data trong một tệp duy nhất có tiêu đề. Dữ liệu trên chỉ là một ví dụ. Hầu hết các "hàng" -data đều có 16 thuộc tính, nhưng nó thay đổi theo thời gian.

Đã hỏi ngày 22 tháng 3 năm 2016 lúc 12:59Mar 22, 2016 at 12:59

Hướng dẫn how to split xml file in python - làm thế nào để chia nhỏ tệp xml trong python

1

Sử dụng Python ElementTree.

Tạo một tệp, ví dụ: xmlsplitter.py. Thêm mã bên dưới (trong đó File.xml là tệp XML của bạn và giả sử mỗi hàng có một phần tử tên duy nhất.).

import xml.etree.ElementTree as ET
context = ET.iterparse('file.xml', events=('end', ))
for event, elem in context:
    if elem.tag == 'row':
        title = elem.find('NAME').text
        filename = format(title + ".xml")
        with open(filename, 'wb') as f:
            f.write("\n")
            f.write(ET.tostring(elem))

Chạy nó với

python xmlsplitter.py

Hoặc nếu tên không phải là duy nhất:

import xml.etree.ElementTree as ET
context = ET.iterparse('file.xml', events=('end', ))
index = 0
for event, elem in context:
    if elem.tag == 'row':
        index += 1
        filename = format(str(index) + ".xml")
        with open(filename, 'wb') as f:
            f.write("\n")
            f.write(ET.tostring(elem))

Đã trả lời ngày 22 tháng 3 năm 2016 lúc 13:17Mar 22, 2016 at 13:17

Dan-DevDan-DevDan-Dev

8.3793 Huy hiệu vàng40 Huy hiệu bạc 50 Huy hiệu Đồng3 gold badges40 silver badges50 bronze badges

4

Đây là mã hoạt động hoàn hảo.

import xml.etree.ElementTree as ET

context = ET.iterparse('filname.xml', events=('end', ))
for event, elem in context:
if elem.tag == 'row':
    title = elem.find('NAME').text
    filename = format(title + ".xml")
    with open(filename, 'wb') as f:
        f.write("\n")
        f.write("\n")
        f.write(ET.tostring(elem))
        f.write("")

Đã trả lời ngày 22 tháng 3 năm 2016 lúc 13:48Mar 22, 2016 at 13:48

Roger Sánchezroger SánchezRoger Sánchez

871 Huy hiệu vàng1 Huy hiệu bạc7 Huy hiệu đồng1 gold badge1 silver badge7 bronze badges

1

Có một công cụ tuyệt vời http://xmlstar.sourceforge.net/docs.php có thể làm rất nhiều với XML (tuy nhiên nó không phải là Pythonic).

Cho bạn có một tệp 1.xml với dữ liệu như trên. Và bạn cần chia nó để tách các tệp với tên nnn.xml với phần tử /root /hàng.

Chỉ cần gọi trong vỏ:

    $ for ((i=1; i<=`xmlstarlet sel -t -v 'count(/root/row)'  1.xml`; i++)); do \
          echo '' > NAME.xml;
          NAME=$(xmlstarlet sel -t -m '/root/row[position()='$i']' -v './NAME' 1.xml); \
          xmlstarlet sel -t -m '/root/row[position()='$i']' -c . -n 1.xml >> $NAME.xml; \
          echo '' >> NAME.xml
       done

Bây giờ bạn có một loạt các tệp XML như joe.xml

Đã trả lời ngày 22 tháng 3 năm 2016 lúc 14:07Mar 22, 2016 at 14:07

Eugene Lisitskyeugene LisitskyEugene Lisitsky

11.4K4 Huy hiệu vàng35 Huy hiệu bạc57 Huy hiệu đồng4 gold badges35 silver badges57 bronze badges

Làm cách nào để chia tệp XML thành nhiều tệp XML?

Chia tệp XML lớn trong Windows (Phương thức số 1) Trước tiên, nhấp vào nút Thêm (các) tệp XML để cung cấp đường dẫn đầu vào của tệp để chia hoặc dễ dàng kéo và thả các tệp của bạn. Sau đó chọn thẻ mà tệp mới sẽ được chia. Tiếp theo, chọn sau khoảng thời gian thẻ để chia thành một tệp mới.click the “Add XML File(s)” button to provide the input path of the file to split, or easily drag and drop your files. Then select the tag by which the new file will be split. Next, choose after what period of tags to split into a new file.

Làm thế nào để bạn phân tích XML trong Python?

Để phân tích tài liệu XML, bạn cần có toàn bộ tài liệu trong bộ nhớ ...
Để phân tích tài liệu XML ..
Nhập xml.dom.minidom ..
Sử dụng chức năng parse parse để phân tích cú pháp tài liệu (doc = xml.dom.minidom.parse (tên tệp) ;.
Gọi danh sách các thẻ XML từ tài liệu XML bằng mã (= doc.getelementsByTagName (tên tên của thẻ XML thẻ).

Làm thế nào để bạn thay đổi một tệp XML trong Python?

Yếu tố.Đặt ('attrname', 'value') - sửa đổi các thuộc tính phần tử ..
Yếu tố.Subelement (cha mẹ, new_childtag) -tạo ra một thẻ con mới dưới cha mẹ ..
Yếu tố.Viết ('Tên tệp. ....
Yếu tố.pop () -delete một thuộc tính cụ thể ..
Yếu tố.Xóa () -để xóa một thẻ hoàn chỉnh ..

Elementtree trong Python là gì?

ElementTree là một thư viện Python quan trọng cho phép bạn phân tích và điều hướng một tài liệu XML.Sử dụng ElementTree phá vỡ tài liệu XML trong cấu trúc cây dễ hoạt động.Khi nghi ngờ, in nó ra (in (et.an important Python library that allows you to parse and navigate an XML document. Using ElementTree breaks down the XML document in a tree structure that is easy to work with. When in doubt, print it out ( print(ET.