C#.NET:从动态生成的 HTML 更改 CSS 文件中的元素?
我有一个 C# 代码隐藏文件,它从服务器动态生成 HTML 并将其转换为 PDF。在 HTML 中,有引用外部样式表的 元素以及许多
标记。
所有这些文件、图像和样式表都来自 www.example.com
,我试图使所有元素都来自 static.example.com
并具有相同的属性网址代替。我已经使用了明显的 stringName.Replace("www.example.com","static.example.com")
来替换 HTML 中的元素,但是有什么办法可以做到这一点吗? CSS 文件中的引用?
例如:background-image:url('www.example.com/bg.png');
需要成为background-image:url('static.example.com/bg.png');
在外部文件中。
对方法有什么想法吗?欢迎创意;我什么都愿意!
谢谢 :)
I have a C# code behind file that gets dynamically generated HTML from a server and converts it to a PDF. In the HTML there are <link rel="stylesheet">
elements that reference external stylesheets as well as many <img>
tags.
All of these files, images and stylesheets, come from www.example.com
, and I'm trying to make all elements come from static.example.com
with the same url instead. I've used the obvious stringName.Replace("www.example.com","static.example.com")
to replace the elements in the HTML, but is there any way to do so for the references in the CSS file?
FOR EXAMPLE:background-image:url('www.example.com/bg.png');
needs to becomebackground-image:url('static.example.com/bg.png');
in the external file.
Any ideas on approach? Creativity is welcome; I'm up for anything!
Thanks :)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
既然你说“文件后面的代码”...你是在 ASP.NET 中这样做吗?
您可以在 HTML 代码中使用 String.Replace 函数将
更改为
。然后编写一个 fixcss.ashx 来检索 CSS 文件并对其执行字符串替换。
Since you say "code behind file"... are you doing this in ASP.NET?
You could use String.Replace functions in the HTML code to change
<link href="www.example.com/cssfile.css">
to<link href="fixcss.ashx?file=www.example.com/cssfile.css">
. Then write a fixcss.ashx to retrieve the CSS file and perform the string replacements on it.您可以使用 filestream 来获取文件,然后替换为您使用过的代码。其他方法是开放的
您可能会发现这很有帮助
CSS 解析器
读取和解析 CSS文件
You may use filestream to get the file and then replace by the code you have used.Other approaches are open
You may find this like helpful
CSS Parser
Reading and Parsing a CSS file
啊哈,这是我的一个想法。这可能效率低下,但我认为我可以这样做:
将每个
更改为
标记并读取文件内容,用嵌入的样式表替换外部样式表。
这可能效率低下,你想吗?
谢谢你!
Aha, so here's an idea I had. This might be inefficient, but here's what I think I could do:
Change each
<link rel="stylesheet">
into a<style> ... </style>
tag and read the file contents, replacing the external stylesheet with an embedded one.This might be inefficient, thoughts?
Thank you!
只是为了某些变化(以及对于可能处于不同环境中的其他人),如果您有权访问它,您可以(并且应该)使用 URL 重写模块。它不仅可以重定向(就像 PHP 应用程序中的 .htaccess 一样),还可以重写所提供的文件中的 URL(例如,您的 CSS 文件)。
Just for some variety (and for other folks who might be in a different environment), if you have access to the to it, you can (and should) use the URL Rewrite module. It can not only redirect (like .htaccess in PHP apps would) but also rewrite the URL in files that are served (so for example, your CSS file).