2009-07-29 16 views
6

Tôi cần chuyển một số mã dựa nhiều vào lxml từ ứng dụng CPython sang IronPython.Làm thế nào để có được lxml làm việc dưới IronPython?

lxml là rất Pythonic và tôi muốn tiếp tục sử dụng nó trong IronPython, nhưng nó phụ thuộc vào libxslt và libxml2, là phần mở rộng C.

Có ai biết giải pháp khác để cho phép lxml trong IronPython hoặc phiên bản lxml không có các phụ thuộc C-extension đó không?

Trả lời

1

Something mà bạn có thể đã xem xét:

Một cách khác là cảng đầu tiên thư viện lxml để IPY và sau đó mã của bạn (tùy thuộc vào kích thước code). Bạn có thể phải viết một số trình bao bọc C# cho các cuộc gọi C bản địa đến các phần mở rộng C - Tôi không chắc chắn các vấn đề, nếu có, có liên quan đến vấn đề này liên quan đến IPy.

Hoặc nếu mã bạn đang chuyển là nhỏ, so với lxml, thì có thể bạn chỉ cần loại bỏ phụ thuộc lxml và sử dụng thư viện .NET XML.

+1

Cảm ơn thông tin đó, ngay bây giờ chúng tôi đang nghiêm túc xem xét việc bán phá giá lxml và tiếp tục .Net XML vì chúng tôi không thể sử dụng phần mở rộng C. –

2

Bạn có thể kiểm tra IronClad, là một dự án nguồn mở nhằm mục đích làm cho C Extensions cho Python có sẵn trong IronPython.

+0

Cảm ơn bạn đã trả lời và thời gian của bạn, tôi muốn tôi có thể sử dụng IronClad và nó có thể sẽ làm việc trong hầu hết các trường hợp. Thật không may mã của tôi sẽ chạy như một kịch bản IronPython nhúng bên trong một máy chủ ASP.net và tôi không thể sử dụng bất kỳ phần mở rộng bản địa nào cả, ngay cả khi tôi có thể truy cập chúng. –

+0

Tôi không phải là một nhà phát triển IronPython hoặc Python có kinh nghiệm; Tôi là một nhà phát triển Net. Sở thích trong IronPython. Tha thứ cho tôi vô minh ở đây. Có vẻ như lxml là một API khá phong phú, do đó sẽ rất khó để tái tạo. Ý tưởng của tôi là cố gắng sao chép các phần của API lxml mà bạn hiện đang sử dụng. Bạn có thể xem xét một dự án như http://devhawk.net/2008/05/06/Stream+Processing+XML+In+IronPython.aspx cho một điểm khởi đầu. –

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