Tôi viết bài này bởi vì tôi đã thực sự đánh vào tường và không thể tiếp tục. Trong cơ sở dữ liệu của tôi, tôi đã thoát HTML như sau: "<p>My name is Freddy and I was"
.Vấn đề thoát nhân vật XSL
Tôi muốn hiển thị nó dưới dạng HTML HOẶC loại bỏ các thẻ HTML trong mẫu XSL của tôi. Cả hai giải pháp sẽ làm việc cho tôi và tôi sẽ chọn giải pháp nhanh hơn.
Tôi đã đọc một số bài đăng trực tuyến nhưng không thể tìm thấy giải pháp. Tôi cũng đã cố gắng vô hiệu hóa-đầu ra-thoát mà không thành công. Về cơ bản có vẻ như vấn đề là một nơi nào đó trong XSL thực hiện động cơ đang thay đổi này <p>
thành điều này: &lt;p&gt;
.
Đang chuyển đổi &
thành &
. Nếu nó giúp, đây là mã XSL của tôi. Tôi đã thử một số kết hợp có và không có thẻ đầu ra ở trên cùng.
Mọi trợ giúp sẽ được đánh giá cao. Cảm ơn trước.
<?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" omit-xml-declaration="yes"/>
<xsl:template match="DocumentElement">
<div>
<xsl:attribute name="id">mySlides</xsl:attribute>
<xsl:apply-templates>
<xsl:with-param name="templatenumber" select="0"/>
</xsl:apply-templates>
</div>
<div>
<xsl:attribute name="id">myController</xsl:attribute>
<xsl:apply-templates>
<xsl:with-param name="templatenumber" select="1"/>
</xsl:apply-templates>
</div>
</xsl:template>
<xsl:template match="DocumentElement/QueryResults">
<xsl:param name="templatenumber">tobereplace</xsl:param>
<xsl:if test="$templatenumber=0">
<div>
<xsl:attribute name="id">myController</xsl:attribute>
<div>
<xsl:attribute name="class">article</xsl:attribute>
<h2>
<a>
<xsl:attribute name="class">title</xsl:attribute>
<xsl:attribute name="title"><xsl:value-of select="Title"/></xsl:attribute>
<xsl:attribute name="href">/stories/stories-details/articletype/articleview/articleid/<xsl:value-of select="ArticleId"/>/<xsl:value-of select="SEOTitle"/>.aspx</xsl:attribute>
<xsl:value-of select="Title"/>
</a>
</h2>
<div>
<xsl:attribute name="style">text-indent: 25px;</xsl:attribute>
<xsl:attribute name="class">articlesummary</xsl:attribute>
<xsl:call-template name="removeHtmlTags">
<xsl:with-param name="html" select="Summary" />
</xsl:call-template>
</div>
</div>
</div>
</xsl:if>
<xsl:if test="$templatenumber=1">
<div>
<xsl:attribute name="id">myController</xsl:attribute>
<span>
<xsl:attribute name="class">jFlowControl</xsl:attribute>
aa
</span>
</div>
</xsl:if>
</xsl:template>
<xsl:template name="removeHtmlTags">
<xsl:param name="html"/>
<xsl:choose>
<xsl:when test="contains($html, '<')">
<xsl:value-of select="substring-before($html, '<')"/>
<!-- Recurse through HTML -->
<xsl:call-template name="removeHtmlTags">
<xsl:with-param name="html" select="substring-after($html, '>')"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$html"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
@Marcos, tôi cần một số hiểu biết giúp đỡ những gì bạn đang cố gắng làm. XSLT của bạn cho biết nó đang cố gắng xuất HTML, nhưng sau đó bạn có một mẫu cho biết bạn đang xóa các thẻ HTML. Không chắc chắn lý do tại sao bạn đang cố gắng làm điều đó. Vui lòng cung cấp thêm một số thông tin nếu bạn có thể. – Nick
Để có thể nói bất cứ điều gì về vấn đề nó sẽ thực sự hữu ích khi có một ví dụ về đầu vào XML được chạy qua bảng định kiểu và hiển thị vấn đề, và cũng để biết bộ vi xử lý XSLT nào bạn đang sử dụng ... – Laurent