Hướng dẫn request xml python - yêu cầu xml python

XML là gì?

XML là viết tắt của eXtensible Markup Language. Nó được thiết kế để lưu trữ và vận chuyển lượng dữ liệu từ nhỏ đến trung bình và được sử dụng rộng rãi trong việc chia sẻ thông tin có cấu trúc.

Python cho phép bạn phân tích cú pháp và sửa đổi tài liệu định dạng XML. Để phân tích các tệp có định dạng XML, bạn cần một tệp XML trọn vẹn trong bộ nhớ. Trong bài học này, chúng ta sẽ tìm hiểu cách sử dụng lớp XML minidom trong Python để nạp và phân tích tệp XML.

Trong bài này, chúng ta sẽ tìm hiểu về:

  • Cách phân tích cú pháp XML bằng minidom

  • Cách tạo node XML

  • Cách phân tích cú pháp XML bằng ElementTree

Cách phân tích cú pháp XML bằng minidom

Cách tạo node XML

Cách phân tích cú pháp XML bằng ElementTree Bên trong tệp, chúng ta có thể thấy thẻ tên(fname), họ(lname), quê quán(home) và chuyên môn (SQL, Python,Testing,  Business).

Hướng dẫn request xml python - yêu cầu xml python

Chúng ta tạo trước một tệp XML mẫu để phân tích. Khi chúng ta phân tích xong tài liệu, chúng ta sẽ in ra “tên node (node name)” gốc của tài liệu đó cùng với “tên thẻ con đầu tiên (firstchild tagname)”. Tên thẻ (tagname) và tên node (node name) là các thuộc tính chuẩn của tệp XML.

Hướng dẫn request xml python - yêu cầu xml python

  • Bước 1) Bên trong tệp, chúng ta có thể thấy thẻ tên(fname), họ(lname), quê quán(home) và chuyên môn (SQL, Python,Testing,  Business).

  • Bước 2) Khi chúng ta phân tích xong tài liệu, chúng ta sẽ in ra “tên node (node name)” gốc của tài liệu đó cùng với “tên thẻ con đầu tiên (firstchild tagname)”. Tên thẻ (tagname) và tên node (node name) là các thuộc tính chuẩn của tệp XML.

  • Nạp mô-đun xml.dom.minidom và khai báo tệp cần đọc (myxml.xml)

  • Tệp này có một số thông tin cơ bản của nhân viên như: tên, họ, quê quán, chuyên môn, v.v.

  • Chúng ta sử dụng hàm phân tích cú pháp của minidom XML để đọc và phân tích tệp XML

  • Chúng ta có biến doc để lưu kết quả trả về của hàm parse.

Chúng ta muốn in tên node và tên thẻ con từ tệp, vì vậy chúng ta cần đưa nó vào hàm print.

Chạy mã nguồn – Chương trình sẽ in ra tên node (#document) và tên thẻ con đầu tiên (employee) từ tệp XML.

Lưu ý: Chúng ta cũng có thể gọi danh sách các thẻ XML và in chúng ra. Ở đây chúng ta in ra một tập các kỹ năng như SQL, Python, Kiểm thử, Kinh tế.

Hướng dẫn request xml python - yêu cầu xml python

  • Trong trường hợp bạn không quen thuộc với các loại quy ước đặt tên, nodeName (tên node) và child tagName (tên thẻ con) là tên hay thuộc tính chuẩn của một dom XML.

  • Bước 3) Chúng ta cũng có thể gọi danh sách các thẻ XML và in chúng ra. Ở đây chúng ta in ra một tập các kỹ năng như SQL, Python, Kiểm thử, Kinh tế.

  • Khai báo biến expertise, từ đó chúng ta có thể lấy ra tất cả các thông tin của một thẻ.

  • Sử dụng hàm chuẩn "getElementsByTagName" từ dom.

  • Hàm sẽ giúp lấy ra toàn bộ các kỹ năng được liệt kê trong tệp.

Cách tạo node XML

Cách phân tích cú pháp XML bằng ElementTree

  1. Chúng ta tạo trước một tệp XML mẫu để phân tích.

  2. Bước 1) Bên trong tệp, chúng ta có thể thấy thẻ tên(fname), họ(lname), quê quán(home) và chuyên môn (SQL, Python,Testing,  Business).

Hướng dẫn request xml python - yêu cầu xml python

  • Bước 2) Khi chúng ta phân tích xong tài liệu, chúng ta sẽ in ra “tên node (node name)” gốc của tài liệu đó cùng với “tên thẻ con đầu tiên (firstchild tagname)”. Tên thẻ (tagname) và tên node (node name) là các thuộc tính chuẩn của tệp XML.

  • Nạp mô-đun xml.dom.minidom và khai báo tệp cần đọc (myxml.xml)

  • Tệp này có một số thông tin cơ bản của nhân viên như: tên, họ, quê quán, chuyên môn, v.v.

  • Chúng ta sử dụng hàm phân tích cú pháp của minidom XML để đọc và phân tích tệp XML

Chúng ta có biến doc để lưu kết quả trả về của hàm parse.

Chúng ta muốn in tên node và tên thẻ con từ tệp, vì vậy chúng ta cần đưa nó vào hàm print.

import xml.dom.minidom

def main():
# use the parse() function to load and parse an XML file
   doc = xml.dom.minidom.parse("Myxml.xml");
  
# print out the document node and the name of the first child tag
   print doc.nodeName
   print doc.firstChild.tagName
  
# get a list of XML tags from the document and print each one
   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
# create a new XML tag and add it into the document
   newexpertise = doc.createElement("expertise")
   newexpertise.setAttribute("name", "BigData")
   doc.firstChild.appendChild(newexpertise)
   print " "

   expertise = doc.getElementsByTagName("expertise")
   print "%d expertise:" % expertise.length
   for skill in expertise:
     print skill.getAttribute("name")
    
if name == "__main__":
  main()

Chạy mã nguồn – Chương trình sẽ in ra tên node (#document) và tên thẻ con đầu tiên (employee) từ tệp XML.

import xml.dom.minidom

def main():
    # use the parse() function to load and parse an XML file
    doc = xml.dom.minidom.parse("Myxml.xml")

    # print out the document node and the name of the first child tag
    print (doc.nodeName)
    print (doc.firstChild.tagName)
    # get a list of XML tags from the document and print each one
    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

    # create a new XML tag and add it into the document
    newexpertise = doc.createElement("expertise")
    newexpertise.setAttribute("name", "BigData")
    doc.firstChild.appendChild(newexpertise)
    print (" ")

    expertise = doc.getElementsByTagName("expertise")
    print ("%d expertise:" % expertise.length)
    for skill in expertise:
        print (skill.getAttribute("name"))

if __name__ == "__main__":
    main()


Cách phân tích cú pháp XML bằng ElementTree

Chúng ta tạo trước một tệp XML mẫu để phân tích.

Bước 1) Bên trong tệp, chúng ta có thể thấy thẻ tên(fname), họ(lname), quê quán(home) và chuyên môn (SQL, Python,Testing,  Business).

<data>
   <items>
      <item name="expertise1">SQL</item>
      <item name="expertise2">Python</item>
   </items>
</data>

Bước 2) Khi chúng ta phân tích xong tài liệu, chúng ta sẽ in ra “tên node (node name)” gốc của tài liệu đó cùng với “tên thẻ con đầu tiên (firstchild tagname)”. Tên thẻ (tagname) và tên node (node name) là các thuộc tính chuẩn của tệp XML.

Nạp mô-đun xml.dom.minidom và khai báo tệp cần đọc (myxml.xml)

import xml.etree.ElementTree as ET

Tệp này có một số thông tin cơ bản của nhân viên như: tên, họ, quê quán, chuyên môn, v.v.

root = tree.getroot()

Chúng ta sử dụng hàm phân tích cú pháp của minidom XML để đọc và phân tích tệp XML

import xml.etree.ElementTree as ET
tree = ET.parse('items.xml')
root = tree.getroot()

# all items data
print('Expertise Data:')

for elem in root:
   for subelem in elem:
      print(subelem.text)

Chúng ta có biến doc để lưu kết quả trả về của hàm parse.

Expertise Data:
SQL
Python

Chúng ta muốn in tên node và tên thẻ con từ tệp, vì vậy chúng ta cần đưa nó vào hàm print.

Chạy mã nguồn – Chương trình sẽ in ra tên node (#document) và tên thẻ con đầu tiên (employee) từ tệp XML.

  • Lưu ý:

    • Trong trường hợp bạn không quen thuộc với các loại quy ước đặt tên, nodeName (tên node) và child tagName (tên thẻ con) là tên hay thuộc tính chuẩn của một dom XML.

    • Bước 3) Chúng ta cũng có thể gọi danh sách các thẻ XML và in chúng ra. Ở đây chúng ta in ra một tập các kỹ năng như SQL, Python, Kiểm thử, Kinh tế.

    • Khai báo biến expertise, từ đó chúng ta có thể lấy ra tất cả các thông tin của một thẻ.

  • Sử dụng hàm chuẩn "getElementsByTagName" từ dom.

    • Hàm sẽ giúp lấy ra toàn bộ các kỹ năng được liệt kê trong tệp.