如何在html-output中省略xslt中的所有XML-Namespace?
我的XSL以:
开头<?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2005/xpath-functions">
我转换XML的代码如下
StringBuilder sb = new StringBuilder(600);
XslCompiledTransform xslTrans = new XslCompiledTransform();
xslTrans.Load(XslDoc);//loads the XSL
XmlWriterSettings writerSettings = new XmlWriterSettings();
writerSettings.OmitXmlDeclaration = true;
writerSettings.ConformanceLevel = ConformanceLevel.Auto;
writerSettings.NamespaceHandling = NamespaceHandling.OmitDuplicates;
using (XmlWriter stringWriter = XmlWriter.Create(sb, writerSettings))
{
xslTrans.Transform(XmlDoc, xslArguments, stringWriter);
}
return sb.ToString();
但是在生成的html输出中出现的命名空间如下:
<div class="newsFeed" xmlnsxs="http://www.w3.org/2001/XMLSchema" xmlnsfn="http://www.w3.org/2005/xpath-functions" >
如何省略生成的输出中的所有命名空间? 很酷,如果我可以通过修改XSL来做到这一点,那么用户可以更改他们的XSL以嵌入他们的命名空间,但默认情况下它将是干净的HTML-Code而不是xmlns。
答案 0 :(得分:5)
您可能正在查找exclude-result-prefixes
元素的xsl:stylesheet
属性。