gpt4 book ai didi

javascript - 动态生成的表格内容(使用 XSLT)中包含单引号 ('),并且 JavaScript 会抛出未捕获的语法错误

转载 作者:行者123 更新时间:2023-12-01 02:06:45 25 4
gpt4 key购买 nike

示例 XML 如下。

<Items>
<Item>
<AssetType>Theme Article</AssetType>
<Name>The State</Name>
<Theme>Family</Theme>
<DateAdded>2017-08-06T17:43:04</DateAdded>
<ActivationDate>2017-06-04T00:00:00</ActivationDate>
<ExpirationDate>2018-05-01T00:00:00</ExpirationDate>
<Owner>Testing Owner</Owner>
<SiteCount>18796</SiteCount>
<Sites>
<Site>
<SiteName> XYZ</SiteName>
<SiteUrl>https://sample.com/test/</SiteUrl>
</Site>
<Site>
<SiteName>ABC O'Brian</SiteName>
<SiteUrl>https://sample1.com/test/</SiteUrl>
</Site>

</Sites>
</Item>
</Items>

我使用XSLT来显示项目,并使用数据表可折叠按钮返回内部xml contnet、Sitename和SiteUrl。但是当内容中有单引号 ' 时抛出异常。

    function format ( d ) { 
var a='<div class="row-fluid_SiteUrl">' +
'<div class="span12">' +
'<table data-datatable="dynamic" data-mybuttons="copy,excel,pdf,print" class="table table-striped table-bordered" id="esSiteUrlResultsTbl">'+
'<thead>'+
'<tr>'+
'<th>Site Name</th>'+
'<th>Site URL</th>'+
'</tr>'+
'</thead>'+
'<tbody>';

var b= '<xsl:for-each select="Items/Item/Sites/Site">'+
'<tr>'+
'<xsl:variable name="Siteurl"><xsl:value-of select="SiteUrl"/></xsl:variable>' +
'<td><xsl:value-of select="SiteName"/></td>'+
'<td><a href="{$Siteurl}"><xsl:value-of select="SiteUrl"/></a></td>'+
'</tr>'+
'</xsl:for-each>';

var c="</tbody>"+
"</table>"+
"</div>"+
"</div>";

return a+b+c;
}

未捕获语法错误的示例输出。

  '<tr>'+
'' +
'<td>ABC - O'Brien Jr., George</td>'+
'<td><a href="https://Sample.com/">https://sample.com//</a></td>'+
'</tr>'+

最佳答案

您还没有指出您想要在何处/如何使用 Javascript 函数 format 返回为 XSLT 的字符串,我怀疑您是否能够在没有上下文的情况下使用这样的代码片段,但就以下方面而言在 JavaScript 中,您只需要确保使用单引号 ' 来分隔字符串文字,然后在 HTML 或 XML 属性分隔符中使用双引号 " 。这样您至少应该没有收到 Javascript 语法错误:

function format ( d ) { 
var a='<div class="row-fluid_SiteUrl">' +
'<div class="span12">' +
'<table data-datatable="dynamic" data-mybuttons="copy,excel,pdf,print" class="table table-striped table-bordered" id="esSiteUrlResultsTbl">'+
'<thead>'+
'<tr>'+
'<th>Site Name</th>'+
'<th>Site URL</th>'+
'</tr>'+
'</thead>'+
'<tbody>';

var b= '<xsl:for-each select="Items/Item/Sites/Site">'+
"<tr>"+
'<xsl:variable name="Siteurl"><xsl:value-of select="SiteUrl"/></xsl:variable>' +
'<td><xsl:value-of select="SiteName"/></td>'+
'<td><a href="{$Siteurl}"><xsl:value-of select="SiteUrl"/></a></td>'+
'</tr>'+
"</xsl:for-each>";

var c="</tbody>"+
"</table>"+
"</div>"+
"</div>";

return a+b+c;
}

如果您不需要支持 IE,那么现在使用反引号作为字符串文字分隔符可能会更轻松地将 XML 或 HTML 片段放入 Javascript 字符串文字中。

关于javascript - 动态生成的表格内容(使用 XSLT)中包含单引号 ('),并且 JavaScript 会抛出未捕获的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50046704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com