加载 XSLT 文档时路径中的非法字符 [英] Illegal Characters in Path when loading XSLT document
本文介绍了加载 XSLT 文档时路径中的非法字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在创建一个方法来返回一个 HTML 字符串作为 XSLT 转换的结果.
I am creating a method to return an HTML string as the result of an XSLT transformation.
当我运行以下代码时,我在以下行中收到 Illegal Characters in Path 错误:xsltTransform.Load(xsltTemplate)
.
When I run the following code I am getting Illegal Characters in Path error on the following line: xsltTransform.Load(xsltTemplate)
.
注意我已经通过另一种方法测试了 XSLT 转换并且它有效.
Note I have tested the XSLT transform via another method and it works.
private string FormatCreditReport(string inputXml)
{
var xsltTransform = new XslCompiledTransform();
var webRootPath = HostingEnvironment.ApplicationPhysicalPath;
var path = webRootPath
+ "XSLT_Stylesheets"
+ Path.DirectorySeparatorChar
+ "CreditReportTransform.xslt";
var xsltTemplate = File.ReadAllText(path);
xsltTransform.Load(xsltTemplate);
StringWriter results = new StringWriter();
using (var reader = XmlReader.Create(new StringReader(inputXml)))
{
xsltTransform.Transform(reader, null, results);
}
return results.ToString();
}
XSLT 文档:
<table border ="1">
<tr>
<th><h2>Credit File</h2></th>
</tr>
<tr></tr>
<tr>
<td>File Since Date</td>
<td><xsl:value-of select="EfxTransmit/EfxReport/USConsumerCreditReports/USConsumerCreditReport/USHeader/CreditFile/FileSinceDate"/></td>
</tr>
<tr>
<td>Date of Last Activity</td>
<td><xsl:value-of select="EfxTransmit/EfxReport/USConsumerCreditReports/USConsumerCreditReport/USHeader/CreditFile/DateOfLastActivity"/></td>
</tr>
<tr>
<td>Date of Request</td>
<td><xsl:value-of select="EfxTransmit/EfxReport/USConsumerCreditReports/USConsumerCreditReport/USHeader/CreditFile/DateOfRequest"/></td>
</tr>
<tr></tr>
<tr>
<th><h2>Subject</h2></th>
</tr>
<tr>
<td>Last Name</td>
<td><xsl:value-of select="EfxTransmit/EfxReport/USConsumerCreditReports/USConsumerCreditReport/USHeader/Subject/LastName"/></td>
</tr>
<tr>
<td></td>
<td></td>
</tr>
</table>
推荐答案
无需调用 File.ReadAllText(path).只需按如下方式传递完全限定的文件路径:
There is no need to call File.ReadAllText(path). Just pass the fully qualified file path as follows:
'var xsltTemplate = File.ReadAllText(path);
xsltTransform.Load(path);
这篇关于加载 XSLT 文档时路径中的非法字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文