Giả sử tôi có một chức năng XPath Tôi đang gọi từ một XSL chuyển đổi sử dụng lxml
(với libxml
và libxslt
), ví dụ:Làm thế nào tôi có thể trả về một đoạn văn bản từ một hàm XPath?
<xsl:template match="/">
<xsl:variable name="result" select="myns:my-func(./*)" />
...
</xsl:template>
Từ chức năng này, tôi muốn trả lại một đoạn XML bao gồm các sau:
some sample <em>text</em>
các python chức năng my_func
được thiết lập một cách chính xác bằng lxml
có sẵn thông qua XSL stylesheet, và sử dụng lxml.html.fragments_fromstring
để có được những kết quả mà là ở định dạng:
['some sample ', <Element em at 0x106c203b0>]
Làm thế nào tôi có thể trở lại danh sách này để nó có thể được sử dụng sau này trong XSL chuyển đổi từ biến như thể nó được thu thập từ một biểu thức XPath trực tiếp trong bối cảnh XSL? Dường như bất cứ khi nào tôi vượt qua một danh sách các chuỗi trở lại bộ vi xử lý XSL lxml
ném một ngoại lệ.
Câu hỏi của bạn là gì? Bạn có muốn biết làm thế nào bạn có thể truy cập một hàm Python từ XML? Hoặc bạn đã có Python liên kết với bộ xử lý XSLT của bạn và nó mang lại kết quả khác với những gì bạn cần? Kết quả là những gì, và làm thế nào để bạn mong đợi tehm? Bạn đang sử dụng bộ xử lý XSLT nào? – FrankPl
@unpluggd Phần nào của câu trả lời của tôi không phù hợp với bạn?Nó sẽ giúp đỡ nếu tôi cung cấp một cái gì đó giống như một liên kết pastebin với một ví dụ làm việc đầy đủ? –
@JamesHolderness Nếu bạn có thể cung cấp một ví dụ làm việc sẽ tuyệt vời! Cá nhân tôi đã thử cách tiếp cận của bạn và nó không hiệu quả đối với tôi, điều này đã khiến tôi thử tạo các đối tượng "chuỗi thông minh" và các giải pháp khác không hoạt động. Tôi đã trao cho bạn tiền thưởng dù sao, và sẽ chấp nhận câu trả lời của bạn với một ví dụ làm việc. Cảm ơn! –