PDA

View Full Version : Hỏi về xsl và html



lttnd
21-05-2003, 22:03
Xin chào các bạn,
mình có vấn đề sau rất mong được trả lời giúp,xin cảm ơn trước .

Bài toán:
Mình có một phần tử xml là <data>nội dung của nó \nfff</data>
Trong tệp xsl mình sẽ áp dụng câu lệnh với phần tử đó để sinh ra nọi dung trình diễn bởi html như sau:
<table>
<tr>
<td>
<xsl:value-of select = "data"/>
</td>
</tr>
</table>
Mặc dù nội dung của phần tử <data> có cả ký tự chuyển dòng('\n') ví dụ như "abc 12 \n dd nn ......" nhưng kết quả là trang html có nội dung cứ nối liền nhau mà không xuống dòng như trong lúc soạn thảo.

quangvu
22-05-2003, 15:55
Kí mã chuyển dòng chỉ có trong một vài ngôn ngữ là C hay Java thôi ,và kí mả này chỉ có hiệu lực khi bạn goi nó trong chương trình (hay trong phương thức print() của Java chẳng hạn) .
VD : System.out.println("nội dung của nó \nfff");
Khi bạn đưa \n vào file XML ,và khi tiến hành đọc/xuất Data từ/vào XML ,Java thấy có "\n" mà trong đó kí tự "\" là kí tự đặc biệt nên nó sẽ xem "\n" cũng tương tự như "\\n" trong Java ,khi đó bạn sẽ không thể cho XML xuống dòng được.
Bạn hãy dùng giải pháp khác thì mai ra .
Chúc thành công !

lttnd
22-05-2003, 20:20
Cảm ơn bạn,
tôi cũng xử lý được rồi ,bằng cách là chia phần tử <data> ban đầu thành nhiều phần từ <data> mà phân cách nhau bởi ký tự '\n'.Sau đó xử lý từng phân tử.vidụ
<xsl:for-each select="data">
<xsl:value-of select="." /><br/>
</xsl:for-each>

Và như vậy mình đã xuống dòng như gõ vào từ đầu vào.

Tuy nhiên nếu xử lý được trực tiếp từ tệp xsl thì có lẽ hay hơn.Ở đây mình đã phải viết mã ở tệp java.???