我们从供应商那里获得了一个 XML 文档,我们需要使用他们的样式表执行 XSL 转换,以便我们可以将生成的 HTML 转换为 PDF。实际的样式表在href
的属性?xml-stylesheet
XML 文档中的定义。有什么方法可以使用 C# 获取该 URL 吗?我不相信供应商不会更改 URL,并且显然不想对其进行硬编码。
XML 文件的开头包含完整的内容?xml-stylesheet
元素看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="http://www.fakeurl.com/StyleSheet.xsl"?>
由于处理指令可以具有任何内容,因此它在形式上不具有任何属性。但是,如果您知道存在“伪”属性,例如 xml 样式表处理指令的情况,那么您当然可以使用处理指令的值来构造单个元素的标记并使用 XML 解析器对其进行解析:
XmlDocument doc = new XmlDocument();
doc.Load(@"file.xml");
XmlNode pi = doc.SelectSingleNode("processing-instruction('xml-stylesheet')");
if (pi != null)
{
XmlElement piEl = (XmlElement)doc.ReadNode(XmlReader.Create(new StringReader("<pi " + pi.Value + "/>")));
string href = piEl.GetAttribute("href");
Console.WriteLine(href);
}
else
{
Console.WriteLine("No pi found.");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)