首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XElement和XslCompiledTransform的问题

XElement和XslCompiledTransform的问题
EN

Stack Overflow用户
提问于 2010-06-08 14:48:42
回答 1查看 2.3K关注 0票数 1

我在使用XElementXslCompiledTransform的组合时遇到了一些困难。我已经将我正在使用的示例代码放在下面。如果我使用GetXmlDocumentXml()方法获得我的输入XML,它就能正常工作。如果我使用GetXElementXml()方法,则在调用XslComiledTransformTransform方法时会得到一个XslComiledTransform

状态启动中的令牌文本将导致无效的XML文档。如果要编写ConformanceLevel片段,请确保将ConformanceLevel.Fragment设置设置为ConformanceLevel.Fragment或ConformanceLevel.Auto。

CreateNavigator方法在XElementXmlDocument上都返回一个XPathNavigatorXmlDocument做了哪些额外的工作,我如何才能对XElement做同样的事情呢?我只是在做些疯狂的事吗?

代码语言:javascript
复制
static void Main(string[] args)
{
    XslCompiledTransform stylesheet = GetStylesheet(); // not shown for brevity
    IXPathNavigable input = this.GetXElementXml();
    using (MemoryStream ms = this.TransformXml(input, stylesheet))
    {
        XmlReader xr = XmlReader.Create(ms);
        xr.MoveToContent();
    }
}

private MemoryStream TransformXml(
    IXPathNavigable xml,
    XslCompiledTransform stylesheet)
{
    MemoryStream transformed = new MemoryStream();
    XmlWriter writer = XmlWriter.Create(transformed);
    stylesheet.Transform(xml, null, writer);

    transformed.Position = 0;
    return transformed;
}

private IXPathNavigable GetXElementXml()
{
    var xml = new XElement("x", new XElement("y", "sds"));
    return xml.CreateNavigator();
}

private IXPathNavigable GetXmlDocumentXml()
{
    var xml = new XmlDocument();
    xml.LoadXml("<x><y>sds</y></x>");
    return xml.CreateNavigator();
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-08 14:52:19

哦,那很简单。解决方案是将XElement封装在XDocument对象中。问题解决了!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2998428

复制
相关文章

相似问题

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