Tôi đang làm việc để quốc tế hóa thêm vào XSL của tôi. Tôi đã nhìn thấy rất nhiều ví dụ về việc tạo một tệp dictionary.xml và tải nó vào XSL của tôi thông qua tài liệu ('dictionary.xml'). Tôi muốn làm một cái gì đó tương tự, nhưng tôi không muốn tạo và lưu trữ các tập tin dictionary.xml trên đĩa, tôi muốn xây dựng nó từ SQL lúc khởi động máy chủ và giữ đối tượng tài liệu trong bộ nhớ trong Java. Tôi muốn sau đó vượt qua tài liệu từ điển như một tham số cho máy biến áp để chức năng dịch XSL của tôi có thể sử dụng nó. Tuy nhiên, nó dường như không hoạt động.Vượt qua tài liệu dưới dạng tham số để dịch XSL trong Java
liên quan mã Java:
Document dictionary = TranslationDictionary.getDictionaryDocument();
transformer.setParameter("dictionary", dictionary);
Từ điển nội dung tài liệu:
<dictionary xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<translatedString dictionaryId="BASIC_DETAILS">
<language id="es" value="Detalles Básicos"/>
</translatedString >
<translatedString dictionaryId="VEHICLE_INFORMATION">
<language id="es" value="Información del Vehículo"/>
</translatedString >
<translatedString dictionaryId="STRUCTURE">
<language id="es" value="Estructura"/>
</translatedString >
<translatedString dictionaryId="DRIVER_INFORMATION">
<language id="es" value="Información del Conductor"/>
</translatedString >
<translatedString dictionaryId="MAINTENANCE_AND_FEUL">
<language id="es" value="Mantenimiento & Combustible"/>
</translatedString >
<translatedString dictionaryId="PURCHASING">
<language id="es" value="Compra"/>
</translatedString >
</dictionary>
Các tập tin XSL:
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://www.test.com">
<xsl:param name="dictionary"/>
<xsl:param name="language" select="'es'"/>
<xsl:template match="/">
<xsl:message>
<xsl:copy-of select="$dictionary/dictionary/translatedString[@dictionaryId='BASIC_DETAILS']/language[@id='es']/@value"/>
</xsl:message>
</xsl:template>
Nhưng tôi nhận được gì. Tôi đã thử chỉ cần làm một bản sao của tài liệu $/tài liệu để xác nhận rằng tôi không có một vấn đề xpath, và nó không phải là, bởi vì điều đó mang lại cho tôi một bản sao của tài liệu đầy đủ. Nó giống như XSL đang nhìn thấy từ điển $ như một chuỗi thay vì một nút. Bất kì manh mối nào?
Tôi đang sử dụng Saxon9 làm XSLT của mình, nếu điều đó giúp –
Điều đó giúp và chỉ ra thực tế rằng câu hỏi này là bộ xử lý XSLT cụ thể và như vậy thuộc về thẻ "xsltprocessor". –