2012-11-01 37 views
5

Tôi đang chuyển tài liệu xsl html như thế này:Sử dụng xsl: thẻ nguyên tố cho html chuyển đổi

<xsl:template match="/"> 
    <html> 
     <head> 
     <title>Title</title> 
     </head> 
     <body> 
     Blah-blah 
     </body> 
    </html> 
    </xsl:template> 

Có đúng cách? Hoặc, có thể, sử dụng xsl:element là tốt hơn? Tôi không thấy các ví dụ với biến thể như vậy:

<xsl:template match="/"> 
    <xsl:element name="html"> 
     <xsl:element name="head"> 
     <xsl:element name="title"> 
      Title 
     </xsl:element> 
     </xsl:element> 
     <xsl:element name="body"> 
     Blah-blah 
     </xsl:element> 
    </xsl:element> 
    </xsl:template> 

Biến thể nào đúng?
Trân trọng.

Trả lời

4

Yếu tố kết quả bằng chữ (tức là cách tiếp cận đầu tiên của bạn) ngắn hơn, dễ nhập hơn và dễ đọc hơn. Tôi khuyên bạn chỉ nên sử dụng xsl:element trong trường hợp bạn muốn tính toán tên phần tử và/hoặc không gian tên tự động dựa trên dữ liệu đầu vào, ví dụ:

<xsl:template match="*"> 
    <xsl:element name="{translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')}"> 
    <xsl:apply-templates/> 
    </xsl:element> 
</xsl:template> 

Trong các trường hợp khác, tôi sẽ sử dụng các yếu tố kết quả bằng chữ như trong mẫu đầu tiên của bạn. Nhưng không có đúng hay sai về mặt kết quả, cả hai biến thể đều cho cùng một cây kết quả.

+0

Ồ, tôi không nghĩ về trường hợp này (tính toán tên phần tử). Cảm ơn bạn, nó rõ ràng hơn cho tôi bây giờ! – bsiamionau

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