Tôi cần trích xuất một vài nội dung trường từ một tệp XML lớn. Tôi hiện đang làm điều này mặc dù sự kết hợp của xmlstarlet và tập lệnh Python (sử dụng ElementTree). Ý tưởng là cắt tệp XML khỏi dữ liệu vô dụng với xmlstarlet và sau đó xử lý tệp nhỏ hơn bằng Python (sử dụng Python trực tiếp trên tệp không thể thực hiện được - bộ nhớ và CPU đã bị hỏng và một số tệp không bao giờ được xử lý). Về cơ bản nó hoạt động nhưng:
- nó không hiệu quả
- nó không đặc biệt linh hoạt
- nó khá là xấu xí (ít nhất là mối quan tâm của tôi, nhưng vẫn là mối quan tâm từ góc độ bảo trì)
Tôi đang tìm kiếm lời khuyên về cách tốt nhất để xử lý một trường hợp như vậy (lượng dữ liệu được trích xuất là khoảng 5% của tệp ban đầu). Tôi cởi mở với bất cứ điều gì hợp lý (một ngôn ngữ cụ thể, có thể bỏ tệp XML vào DB và sau đó trích xuất những gì tôi cần trước khi bỏ DB?, ...)