在macOS WebView (Xamarin)上使用相对的href对样式表使用XSLT是不工作的.表格5. x).&l



为什么对于macOS上的WebViewXSL转换,我必须这样设置stylesheet路径:

<link rel="stylesheet" type="text/css">
<xsl:attribute name="href">
<xsl:value-of select="ScheduleData/@CSSPath"/>
</xsl:attribute>
</link>

CSS, XML和XSL文件都在Mac上的同一个文件夹中。最初我为CSS文件设置了一个硬编码的完整路径:

<link rel="stylesheet" type="text/css" href="/path to file/file.css"/>

但是我意识到这对用户来说是不合适的,所以我简单地去掉了路径,只留下文件名:

<link rel="stylesheet" type="text/css" href="file.css"/>

但是随后WebView将找不到样式表。我甚至尝试使用href="./file.css"来代替:

<link rel="stylesheet" type="text/css" href="./file.css"/>

它也不喜欢那样。最后,我决定将在运行时确定的完整路径添加为XML文件的属性,并调整XSL逻辑以使用它(如我的问题的第一个示例所示),以便能够正确地找到它。

该方法可以工作,但它强制用户具有同名的XSL和CSS文件(否则我不知道构建和传递什么路径)。

在Windows上,我一直在IE中使用XSL等,我总是能够只使用文件名,这将是相对于XSL文件。然而WebView拒绝找到它。

在此上下文中是否有不同的方法来指定相对路径?

几天后又发生了。我在这里问了我的问题,却偶然找到了答案。😊

问题是HtmlWebViewSource元素:

HtmlSource = new HtmlWebViewSource
{
Html = TransformXMLtoHTML(xmlpath, xslpath),
BaseUrl = StylesPath
};

我必须指定BaseUrl。现在我的XSL代码看起来像这样:

<link rel="stylesheet" type="text/css" href="ElderlyInfirm-Schedule-v1.css"/>

一切都好!

最新更新