首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML StringWriter为空

XML StringWriter为空
EN

Stack Overflow用户
提问于 2011-09-27 05:19:03
回答 1查看 1.7K关注 0票数 1

我在XMLDocument中有一些XML,我想把它放到StringWriter中,但它总是变成空的(?)而不是。我尝试过使用debug检查变量,但我仍然不知道发生了什么。

这就是我所拥有的:

代码语言:javascript
复制
        XmlDocument xmlInput = new XmlDocument();
        /* after this executes, xmlInput has lots of data in it */  
        xmlInput.LoadXml(...); 

        XslCompiledTransform transform = new XslCompiledTransform();
        /* I'm pretty sure Template.xslt is being found and loaded correctly */
        transform.Load(Server.MapPath("/Files/Template.xslt")); 

        using (System.IO.StringWriter sb = new System.IO.StringWriter())
        {
            XmlWriterSettings xSettings = new XmlWriterSettings();
            xSettings.ConformanceLevel = ConformanceLevel.Fragment;
            xSettings.Encoding = Encoding.UTF8;
            /* PROBLEM: After this line, StringWriter sb is {} */
            using (XmlWriter xWriter = XmlWriter.Create(sb, xSettings))
            {
                transform.Transform(xmlInput, xWriter);
            }

            /* xmlText is empty string "" after this line */
            String xmlText = sb.ToString();

            /* ... does more stuff ... */
        }

我能得到一些帮助吗?我真的不知道该怎么做才能让它正常工作。

编辑:更多调查:

代码语言:javascript
复制
        using (var stringWriter = new StringWriter())
        {
            using (var xmlTextWriter = XmlWriter.Create(stringWriter))
            {
                /* Prints lots of data to the screen */
                Response.Write(xmlInput.InnerXml);

                xmlInput.WriteTo(xmlTextWriter);
                /* Doesn't print anything to the screen */
                Response.Write(stringWriter.GetStringBuilder().ToString() );
            }
        }

但是,刷新起作用了。

代码语言:javascript
复制
                xmlInput.WriteTo(xmlTextWriter);
                xmlTextWriter.Flush();
                /* prints lots of data */
                Response.Write( stringWriter.GetStringBuilder().ToString() );
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-28 05:09:36

事实证明,我尝试应用的XSLT文件需要将XML包装在某个元素中。

但是flush()技巧帮助很大。

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

https://stackoverflow.com/questions/7561456

复制
相关文章

相似问题

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