Python XML không thoát

Nhận toàn quyền truy cập vào Python. Essential Reference, Third Edition và hơn 60.000 đầu sách khác, với 10 ngày dùng thử miễn phí O'Reilly

Ngoài ra còn có các sự kiện trực tuyến trực tiếp, nội dung tương tác, tài liệu chuẩn bị chứng nhận, v.v.

Tôi không phải là một lập trình viên, ý tôi là một lập trình viên thực sự. Tôi thỉnh thoảng hack mã, chủ yếu là python, để có thể xử lý các tệp cho các tác vụ định kỳ. Tôi phải đọc các tệp XHTML để gửi tới trình phân tích cú pháp XML [ElementTree]

Đoạn code này có thể hữu ích cho ai đó và chắc chắn sẽ có người cho rằng nó thực sự được lập trình bằng chân của tôi và đề xuất cách khắc phục. Tôi thường làm việc ở UTF-8 nhưng đôi khi có thể có tham chiếu ký tự và thực thể được đặt tên trong tệp của tôi. Vì vậy, tôi muốn chuyển đổi mọi thứ thành ký tự UTF-8

def parsefile[path]:
   try:
      file = open[path, "r"]
      fileread = file.read[]
      fileread = unescape[fileread.decode['utf-8']].encode['utf-8']
      file.close[]
   except:
      print "Reading File Bug"
      sys.exit[1]
   return ET.fromstring[fileread]

Nó được tìm thấy trên trang web Fredrik Lundh. Mã đã làm quá nhiều vì nó đang chuyển đổi &, > 300. tóm tắt = tóm tắt [. 300] + ". " url = "https. //myanimelist. mạng/phim hoạt hình/{}". các trường định dạng [id] = {Ngôn ngữ. get["myyanimelist. English_title", ctx]. tiếng anh, ngôn ngữ. get["myyanimelist. tập", ctx]. tập, Ngôn ngữ. get["myyanimelist. mal_line", ctx]. điểm số, ngôn ngữ. get["myyanimelist. gõ", ctx]. loại, ngôn ngữ. get["myyanimelist. trạng thái", ctx]. trạng thái, ngôn ngữ. get["myyanimelist. ngày_bắt đầu", ctx]. start_date, Ngôn ngữ. get["myyanimelist. end_date", ctx]. end_date} nhúng = make_list_embed[trường] nhúng. tiêu đề = nhúng tiêu đề. mô tả = tóm tắt nhúng. url = nhúng url. màu = 0xFF0000 nhúng. set_thumbnail[url=image] đang đợi ctx. gửi[nhúng=nhúng]

Mô-đun chứa một số lớp và chức năng thường hữu ích khi tạo ứng dụng SAX, sử dụng trực tiếp hoặc làm lớp cơ sở

xml. kèn. saxutil. thoát[dữ liệu , thực thể={}]

Thoát '&', '' trong một chuỗi dữ liệu

Bạn có thể thoát các chuỗi dữ liệu khác bằng cách chuyển một từ điển làm tham số thực thể tùy chọn. Tất cả các khóa và giá trị phải là chuỗi; . Các ký tự '&', '' luôn được thoát, ngay cả khi các thực thể được cung cấp

xml. kèn. saxutil. unescape[dữ liệu , thực thể={}]

Unescape '&', xml.sax.saxutils0 và xml.sax.saxutils1 trong một chuỗi dữ liệu

Bạn có thể bỏ thoát các chuỗi dữ liệu khác bằng cách chuyển một từ điển làm tham số thực thể tùy chọn. Tất cả các khóa và giá trị phải là chuỗi; . xml.sax.saxutils2, xml.sax.saxutils0 và xml.sax.saxutils1 luôn không thoát, ngay cả khi các thực thể được cung cấp

xml. kèn. saxutil. quotatr[dữ liệu , thực thể={}]

Tương tự như , nhưng cũng chuẩn bị dữ liệu được sử dụng làm giá trị thuộc tính. Giá trị trả về là phiên bản dữ liệu được trích dẫn với bất kỳ sự thay thế bắt buộc bổ sung nào. sẽ chọn một ký tự trích dẫn dựa trên nội dung của dữ liệu, cố gắng tránh mã hóa bất kỳ ký tự trích dẫn nào trong chuỗi. Nếu cả ký tự trích dẫn đơn và trích dẫn kép đều đã có trong dữ liệu, ký tự trích dẫn kép sẽ được mã hóa và dữ liệu sẽ được bao bọc trong dấu ngoặc kép. Chuỗi kết quả có thể được sử dụng trực tiếp như một giá trị thuộc tính

>>> print["" % quoteattr["ab ' cd \" ef"]]

Hàm này hữu ích khi tạo các giá trị thuộc tính cho HTML hoặc bất kỳ SGML nào bằng cú pháp cụ thể tham chiếu

lớp xml. kèn. saxutil. Trình tạo XML[ra=Không có , mã hóa='iso-8859-1' , short_empty_elements=Sai]

Lớp này thực hiện giao diện bằng cách ghi lại các sự kiện SAX vào một tài liệu XML. Nói cách khác, sử dụng an làm trình xử lý nội dung sẽ tái tạo tài liệu gốc đang được phân tích cú pháp. out phải là một đối tượng giống như tệp sẽ mặc định là sys. tiêu chuẩn. mã hóa là mã hóa của luồng đầu ra mặc định là xml.sax.saxutils9. short_empty_elements kiểm soát định dạng của các phần tử không chứa nội dung. nếu xml.sax.saxutils0 [mặc định], chúng được phát ra dưới dạng một cặp thẻ bắt đầu/kết thúc, nếu được đặt thành xml.sax.saxutils1, chúng được phát ra dưới dạng một thẻ tự đóng

Mới trong phiên bản 3. 2. Tham số short_empty_elements.

lớp xml. kèn. saxutil. XMLFilterBase[cơ sở]

Lớp này được thiết kế để nằm giữa trình xử lý sự kiện của ứng dụng khách và ứng dụng khách. Theo mặc định, nó không làm gì ngoài việc chuyển các yêu cầu tới trình đọc và các sự kiện tới các trình xử lý chưa sửa đổi, nhưng các lớp con có thể ghi đè các phương thức cụ thể để sửa đổi luồng sự kiện hoặc các yêu cầu cấu hình khi chúng đi qua

xml. kèn. saxutil. prepare_input_source[nguồn , cơ sở='']

Hàm này lấy một nguồn đầu vào và một URL cơ sở tùy chọn, đồng thời trả về một đối tượng được giải quyết đầy đủ sẵn sàng để đọc. Nguồn đầu vào có thể được cung cấp dưới dạng một chuỗi, một đối tượng giống như tệp hoặc một đối tượng;

Chủ Đề