【发布时间】:2014-05-22 16:47:12
【问题描述】:
所以我使用下面的代码进行 xslt 转换。但我对 ASP.NET 开发还很陌生,所以这些错误有点误导。此代码正在生成一个错误,指出它不理解物理路径而只理解虚拟路径。什么是虚拟路径,如何从指定的物理路径创建?
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="ViewerASP.SiteMaster" %>
<%@ Import Namespace="System.Xml" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<%@ Import Namespace="System.Xml.XPath" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head runat="server">
<title>Viewer</title>
<link href="~/Styles/Site.css" rel="stylesheet" type="text/css" />
<script language="C#" runat="server">
public void Page_Load(Object sender, EventArgs E) {
string xmlPath = Server.MapPath("physicaladdresshere");
string xslPath = Server.MapPath("physicaladdresshere");
//Instantiate the XPathDocument Class
XPathDocument doc = new XPathDocument(xmlPath);
//INstantiate the XslTransform Class
XslTransform transform = new XslTransform();
transform.Load(xslPath);
//Custom format the indenting of the output document using XmlTextWriter
XmlTextWriter writer = new XmlTextWriter(Response.Output);
writer.Formatting = Formatting.Indented;
writer.Indentation=4;
transform.Transform(doc,null,writer);
}
</script>
<asp:ContentPlaceHolder ID="HeadContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<div class="main">
<asp:ContentPlaceHolder ID="MainContent" runat="server"/>
</div>
</body>
</html>
【问题讨论】:
-
您的
physicaladdresshere看起来如何?是相对的还是绝对的?如果相对 - 到什么目录? -
作为一个例子,它看起来像这样:C:\Users\kyle\Desktop\file.xml。我尝试对此进行硬编码,但它给了我关于无效转义字符序列的错误,所以我将其更改为:C:\\Users\\kyle\\Desktop\\file.xml 并收到原始发布的错误。