首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XmlDocument上应用XSLT并获得更新的XmlDocument

在XmlDocument上应用XSLT并获得更新的XmlDocument
EN

Stack Overflow用户
提问于 2015-01-12 13:22:03
回答 1查看 862关注 0票数 0

我必须创建一个升级机制,它将更新一个XML文档(更新为另一个xml文档)。

我必须尊重的方法的签名是:

代码语言:javascript
复制
public XmlDocument Update(XmlDocument sourceDocument){...}

在此基础上应用XSLT文件的最有效方法是什么?

我本来希望能够使用XslTransform类,但它只接受流和XmlWriter作为输出的参数。

所以我知道我可以这样做:

代码语言:javascript
复制
public XmlDocument Update(XmlDocument sourceDocument){
    XslTransform myXslTransform = new XslTransform();
    myXslTransform.Load("myXsl.xsl"); 
    MemoryStream ms = new MemoryStream();
    myXslTransform.Transform(sourceDocument, null, ms);
    XmlDocument output = new XmlDocument();
    output.Load(ms);
    return output;
}

但是我发现这不是很有效(知道我的XSLT将重命名一些节点,在中间添加一个节点,添加一个子节点)。有办法做得更好吗?

我的“唯一”约束是:输入/输出: XmlDocument,要加载的外部XSLT。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-12 13:39:18

如果要将System.Xml.XmlDocument与微软提供的当前XSLT1.0实现(XslCompiledTransform)结合使用,则可以使用

代码语言:javascript
复制
XmlDocument resultDocument = new XmlDocument();
using (XmlWriter xw = resultDocument.CreateNavigator().AppendChild()) {
  XslCompiledTransform proc = new XslCompiledTransform();
  proc.Load("myXsl.xsl");
  proc.Transform(sourceDocument, null, xw);
  xw.Close();
}
return resultDocument;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27902974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档