如何通过ASP.NET从xsl文件中检索xsl:output media-type值

时间:2010-03-09 15:02:02

标签: asp.net xslt xslcompiledtransform

有没有办法检索媒体类型值?例如比如OutputSettings.OutputMethod用于获取xsl:output方法。

2 个答案:

答案 0 :(得分:2)

XPathNavigator objArgXPathNavigator = objArgXsltDocument.CreateNavigator();
XPathExpression objXPathExpression = objArgXPathNavigator.Compile("/*/xsl:output/@media-type");
XmlNamespaceManager objXmlNamespaceManager = new XmlNamespaceManager(objArgXPathNavigator.NameTable);
objXmlNamespaceManager.AddNamespace("xsl", "http://www.w3.org/1999/XSL/Transform");
objXPathExpression.SetContext(objXmlNamespaceManager);

XPathNodeIterator nodes = objArgXPathNavigator.Select(objXPathExpression);
while (nodes.MoveNext())
{
  objArgHttpContext.Response.Write(nodes.Current.ToString());
}

答案 1 :(得分:0)

您可以通过首选的XML处理方法查询XSL样式表(例如作为XmlDocument)并发出以下XPath查询(不要忘记事先使用{使xsl名称空间可用于XPath) {1}}):

/*/xsl:output/@media-type

使用LINQ也可以实现等效。