2010-07-31 27 views
12

làm cách nào để triển khai css trong tệp xsl? tôi đã cố gắng này:css trong tài liệu xsl

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<link rel="stylesheet" type="text/css" href="dxsl.css"/> 
<xsl:output method="html" /> 

nhưng nó ném lỗi:

XSLTProcessor::importStylesheet(): Found a top-level element link with null namespace URI 

Warning: XSLTProcessor::transformToXml(): No stylesheet associated to this object 
+0

Tôi nghĩ đây không phải là câu hỏi XSLT mà là câu hỏi HTML. Nếu bạn chạy một phép biến đổi từ XML thành HTML thì ¿Bạn xuất phần tử 'link' ở đâu? –

Trả lời

0

'liên kết' là một yếu tố HTML và bạn đang cố gắng sử dụng nó như một XML một. XSL sửa đổi đầu vào vào một tài liệu khác. Bạn không sử dụng CSS trong một tệp XSL. Bạn chèn nó vào một tập tin HTML (X) và áp dụng nó ở đó.

+0

cảm ơn, nhưng tôi đã làm việc đó. nó phải là ngay sau phần tử head trong tệp xsl. 'http: // www.velocityreviews.com/forums/t166257-linking-to-a-riêng-css-in-xsl.html' – input

+0

Có, bởi vì, một khi nằm trong đầu, bạn đang ở trong không gian tên HTML. – Rob

2

Nếu tôi hiểu chính xác, bạn muốn đầu ra có biểu định kiểu cụ thể?

XSL là ngôn ngữ được sử dụng để chuyển đổi XML từ một định dạng sang định dạng khác (theo nghĩa nào đó, giống như áp dụng biểu định kiểu css). Điều gì sẽ xảy ra trong một trường hợp sử dụng điển hình là bạn sẽ lấy một số tệp xml và sử dụng XSL để chuyển đổi nó, nói với XHTML. Trong đầu ra này, bạn có thể bao gồm một biểu định kiểu bằng cách sử dụng phần tử liên kết nếu bạn muốn, nhưng XSL không thực sự sử dụng CSS như vậy. (Về cơ bản, hãy thử đặt CSS trong XSL như một phần của phép biến đổi để có đầu ra XHTML sử dụng nó.)

Nếu đây là một tài liệu XML, bạn chỉ cần bao gồm tham chiếu đến XSL và nó sẽ xử lý tự động chuyển đổi cho bạn.

+0

cuối cùng, tôi hiểu bây giờ những gì đang xảy ra ... câu trả lời hay (nếu bạn có các phần tử html trong tệp .xsl, có cần phải thêm liên kết css href dưới thẻ như trong HTML bình thường, vì đầu ra XHTML sẽ có dòng nhập tệp css như là kết quả) –

1

Liên kết phải nằm trong mẫu xsl.

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 

<xsl:output method="html" /> 

<xsl:template match="/*//*[1]"> 

    <link rel="stylesheet" type="text/css" href="dxsl.css"/> 

</xsl:template> 

</xsl:stylesheet> 
+0

điều này không có ý nghĩa nếu bạn đang áp dụng xsl để biến xml thành xml. – Dmitry

+2

Sau đó, điều tốt là câu hỏi về việc chuyển xml thành html. –

-1

Như một câu trả lời khác cho biết, liên kết phải được tạo bởi biến đổi. Đây là một ví dụ tạo ra một tài liệu HTML nhỏ với liên kết tới CSS từ một tài liệu xml đơn giản. Đường dẫn css cũng xuất phát từ dữ liệu.

Try this