我们从供应商处获取XML文档,我们需要使用它们的样式表执行XSL转换,以便我们可以将生成的HTML转换为PDF.实际样式表在XML文档中定义的href属性中引用?xml-stylesheet.有什么方法可以使用C#获取该URL吗?我不相信供应商不更改URL,显然不想对其进行硬编码.
带有完整?xml-stylesheet元素的XML文件的开头如下所示:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://www.fakeurl.com/StyleSheet.xsl"?>
Run Code Online (Sandbox Code Playgroud)
Linq 到 xml 代码:
XDocument xDoc = ...;
var cssUrlQuery = from node in xDoc.Nodes()
where node.NodeType == XmlNodeType.ProcessingInstruction
select Regex.Match(((XProcessingInstruction)node).Data, "href=\"(?<url>.*?)\"").Groups["url"].Value;
Run Code Online (Sandbox Code Playgroud)
或 linq 到对象
var cssUrls = (from XmlNode childNode in doc.ChildNodes
where childNode.NodeType == XmlNodeType.ProcessingInstruction && childNode.Name == "xml-stylesheet"
select (XmlProcessingInstruction) childNode
into procNode select Regex.Match(procNode.Data, "href=\"(?<url>.*?)\"").Groups["url"].Value).ToList();
Run Code Online (Sandbox Code Playgroud)
xDoc.XPathSelectElement() 将不起作用,因为由于某种原因它无法将 XElement 转换为 XProcessingInstruction。
| 归档时间: |
|
| 查看次数: |
7378 次 |
| 最近记录: |