我有一个 DataFormWebPart,我们知道他为我们创建了一个 xml,我们通常在我们的 xsl 中像这样得到它:
<xsl:template match="/" >
<xsl:for-each select="/dsQueryResponse/Rows/Row">
此外,假设我们想在 XML 中添加其他内容,我们将这样做
public override void DataBind()
{
this.sourceDoc = new ChannelsDFWP_XmlCreator().CreateXmlDoc(-ChannelsDAL.DAYSDELTA);
this.BindXmlData();
}
现在,如果我们只想要一些额外的参数,我们会这样做
protected override void ModifyXsltArgumentList(ArgumentClassWrapper argList)
{
argList.AddParameter("name", string.Empty, value);
base.ModifyXsltArgumentList(argList);
}
现在我想在中间做点什么,我想要默认情况下得到的相同 XML 结果并像这样扩展它
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(the same xml as the DFWP renders it);
XmlNode root = _ xmlDoc.CreateElement("anotherNode");
然后全部归还。你可能会这样
var xml = Lists.ChannelsCategories.Instance.GetList(SPContext.Current.Site.RootWeb).Items.Xml;
但这带来了一个完全不同(而且更丑陋)的 XML。如果您甚至可以告诉我 XSL 在哪里将其转换为我们所知道的,我也会很高兴 :)
谢谢!