jjzjj

c# - 处于 EndRootElement 状态的 token StartElement 将导致无效的 XML 文档

coder 2024-06-28 原文

我正在做一个项目,我用 C# 创建一个 power point 文档。 一切都很好,但出于某种原因,我的一种方法出现了这个错误:

“状态 EndRootElement 中的 token StartElement 将导致无效的 XML 文档。”

这是我的方法:

 private static void slideLayout6XML()
    {
        FileStream slideLayout6Stream = new FileStream( slideLayout6, FileMode.Create, FileAccess.Write );
        XmlWriter slideLayout6Writer = null;

        try
        {
            XmlWriterSettings contentTypesSettings = new XmlWriterSettings();
            contentTypesSettings.Indent = true;
            slideLayout6Writer = XmlWriter.Create( slideLayout6Stream, contentTypesSettings );

            slideLayout6Writer.WriteStartDocument( true );
            slideLayout6Writer.WriteStartElement( "p", "sldLayout" );
            slideLayout6Writer.WriteAttributeString( "preserve", "1" );
            slideLayout6Writer.WriteAttributeString( "type", "titleOnly" );

            slideLayout6Writer.WriteStartElement( "p", "http://schemas.openxmlformats.org/drawingml/2006/main" );
            slideLayout6Writer.WriteStartElement( "r", "http://schemas.openxmlformats.org/officeDocument/2006/relationships" );
            slideLayout6Writer.WriteStartElement( "a", "http://schemas.openxmlformats.org/presentationml/2006/main" );

            slideLayout6Writer.WriteStartElement( "p", "cSld" );
            slideLayout6Writer.WriteAttributeString( "name", "Title Only" );

            slideLayout6Writer.WriteStartElement( "p", "spTree" );
            slideLayout6Writer.WriteStartElement( "p", "nvGrpSpPr" );
            slideLayout6Writer.WriteStartElement( "p", "cNvpr" );
            slideLayout6Writer.WriteAttributeString( "name", "" );
            slideLayout6Writer.WriteAttributeString( "id", "1" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "p", "cNvGrpSpPr" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "p", "nvPr" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "grpSpPr" );
            slideLayout6Writer.WriteStartElement( "a", "xfrm" );
            slideLayout6Writer.WriteStartElement( "a", "off" );
            slideLayout6Writer.WriteAttributeString( "y", "0" );
            slideLayout6Writer.WriteAttributeString( "x", "0" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "ext" );
            slideLayout6Writer.WriteAttributeString( "y", "0" );
            slideLayout6Writer.WriteAttributeString( "x", "0" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "chOff" );
            slideLayout6Writer.WriteAttributeString( "y", "0" );
            slideLayout6Writer.WriteAttributeString( "x", "0" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "chExt" );
            slideLayout6Writer.WriteAttributeString( "y", "0" );
            slideLayout6Writer.WriteAttributeString( "x", "0" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "sp" );
            slideLayout6Writer.WriteStartElement( "p", "nvSpPr" );
            slideLayout6Writer.WriteStartElement( "p", "cNvPr" );
            slideLayout6Writer.WriteAttributeString( "name", "Title 1" );
            slideLayout6Writer.WriteAttributeString( "id", "2" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "cNvSpPr" );
            slideLayout6Writer.WriteStartElement( "a", "spLocks" );
            slideLayout6Writer.WriteAttributeString( "noGrp", "1" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "nvPr" );
            slideLayout6Writer.WriteStartElement( "p", "ph" );
            slideLayout6Writer.WriteAttributeString( "type", "title" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "txBody" );
            slideLayout6Writer.WriteStartElement( "a", "bodyPr" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "lstStyle" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "p" );
            slideLayout6Writer.WriteStartElement( "a", "r" );
            slideLayout6Writer.WriteStartElement( "a", "rPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteAttributeString( "smtClean", "0" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "t" );
            slideLayout6Writer.WriteRaw( "Click to edit Master title style" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "endParaRPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "sp" );
            slideLayout6Writer.WriteStartElement( "p", "nvSpPr" );
            slideLayout6Writer.WriteStartElement( "p", "cNvPr" );
            slideLayout6Writer.WriteAttributeString( "name", "Date Placeholder 2" );
            slideLayout6Writer.WriteAttributeString( "id", "3" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "cNvSpPr" );
            slideLayout6Writer.WriteStartElement( "a", "spLocks" );
            slideLayout6Writer.WriteAttributeString( "noGrp", "1" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "nvPr" );
            slideLayout6Writer.WriteStartElement( "p", "ph" );
            slideLayout6Writer.WriteAttributeString( "type", "dt" );
            slideLayout6Writer.WriteAttributeString( "idx", "10" );
            slideLayout6Writer.WriteAttributeString( "sz", "half" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "txBody" );
            slideLayout6Writer.WriteStartElement( "a", "bodyPr" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "lstStyle" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "p" );
            slideLayout6Writer.WriteStartElement( "a", "fld" );
            slideLayout6Writer.WriteAttributeString( "type", "datetime1" );
            slideLayout6Writer.WriteAttributeString( "id", "{32E0D616-E0F4-45FD-A59D-58900C81D413}" );

            slideLayout6Writer.WriteStartElement( "a", "rPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteAttributeString( "smtClean", "0" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "t" );
            slideLayout6Writer.WriteRaw( "5/17/2012" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "endParaRpR" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "sp" );
            slideLayout6Writer.WriteStartElement( "p", "nvSpPr" );
            slideLayout6Writer.WriteStartElement( "p", "cNvPr" );
            slideLayout6Writer.WriteAttributeString( "name", "Footer Placeholder 3" );
            slideLayout6Writer.WriteAttributeString( "id", "4" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "cNvSpPr" );
            slideLayout6Writer.WriteStartElement( "a", "spLocks" );
            slideLayout6Writer.WriteAttributeString( "noGrp", "1" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "nvPr" );
            slideLayout6Writer.WriteStartElement( "p", "ph" );
            slideLayout6Writer.WriteAttributeString( "type", "ftr" );
            slideLayout6Writer.WriteAttributeString( "idx", "11" );
            slideLayout6Writer.WriteAttributeString( "sz", "quarter" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "txBody" );
            slideLayout6Writer.WriteStartElement( "a", "bodyPr" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "lstStyle" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "p" );
            slideLayout6Writer.WriteStartElement( "a", "r" );
            slideLayout6Writer.WriteStartElement( "a", "rPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteAttributeString( "smtClean", "0" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "t" );
            slideLayout6Writer.WriteRaw( "Crowded Igloo Business System" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "endParaRPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "sp" );
            slideLayout6Writer.WriteStartElement( "p", "nvSpPr" );
            slideLayout6Writer.WriteStartElement( "p", "cNvPr" );
            slideLayout6Writer.WriteAttributeString( "name", "Slide Number Placeholder 4" );
            slideLayout6Writer.WriteAttributeString( "id", "5" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "cNvSpPr" );
            slideLayout6Writer.WriteStartElement( "a", "spLocks" );
            slideLayout6Writer.WriteAttributeString( "noGrp", "1" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "nvPr" );
            slideLayout6Writer.WriteStartElement( "p", "ph" );
            slideLayout6Writer.WriteAttributeString( "type", "sldNum" );
            slideLayout6Writer.WriteAttributeString( "idx", "12" );
            slideLayout6Writer.WriteAttributeString( "sz", "quarter" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "txBody" );
            slideLayout6Writer.WriteStartElement( "a", "bodyPr" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "lstStyle" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteStartElement( "a", "p" );
            slideLayout6Writer.WriteStartElement( "a", "fld" );
            slideLayout6Writer.WriteAttributeString( "type", "slidenum" );
            slideLayout6Writer.WriteAttributeString( "id", "{8B131516-2DB0-4AAA-89BA-2724DE07B6A2}" );

            slideLayout6Writer.WriteStartElement( "a", "rPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteAttributeString( "smtClean", "0" );
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "t" );
            slideLayout6Writer.WriteRaw( "<#>" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "a", "endParaRPr" );
            slideLayout6Writer.WriteAttributeString( "lang", "en-US" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "extLst" );
            slideLayout6Writer.WriteStartElement( "p", "ext" );
            slideLayout6Writer.WriteAttributeString( "uri", "{BB962C8B-B14F-4D97-AF65-F5344CB8AC3E}" );
            slideLayout6Writer.WriteStartElement( "p14", "creationId", "http://schemas.microsoft.com/office/powerpoint/2010/main" );
            slideLayout6Writer.WriteAttributeString( "val", "3805825225" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteStartElement( "p", "clrMapOvr" );
            slideLayout6Writer.WriteStartElement( "a", "masterClrMapping" );
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();
            slideLayout6Writer.WriteEndElement();

            slideLayout6Writer.WriteEndDocument();
        }
        finally
        {
            if (slideLayout6Writer != null)
                slideLayout6Writer.Flush();

            slideLayout6Writer.Close();
        }
    }

对于大量的方法感到抱歉,但在这个方法中它会抛出错误。 任何帮助将不胜感激谢谢。

最佳答案

我的猜测是您已经关闭了最外层的元素,因此您不能打开一个新元素,因为 XML 只允许最外层有一个元素。

这种接口(interface)对于编写 XML 非常方便,我自己也使用它,但是如果你犯了任何嵌套错误,调试起来可能会很麻烦。众所周知,我将自己的包装器用于接口(interface),其中对 endElement 的调用必须指定匹配的标签名称;然后包装器可以检查调用的正确嵌套,这极大地有助于识别错误所在。

关于c# - 处于 EndRootElement 状态的 token StartElement 将导致无效的 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10752363/

有关c# - 处于 EndRootElement 状态的 token StartElement 将导致无效的 XML 文档的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  3. ruby-on-rails - 跳过状态机方法的所有验证 - 2

    当我的预订模型通过rake任务在状态机上转换时,我试图找出如何跳过对ActiveRecord对象的特定实例的验证。我想在reservation.close时跳过所有验证!叫做。希望调用reservation.close!(:validate=>false)之类的东西。仅供引用,我们正在使用https://github.com/pluginaweek/state_machine用于状态机。这是我的预订模型的示例。classReservation["requested","negotiating","approved"])}state_machine:initial=>'requested

  4. ruby-on-rails - Rails 5 Active Record 记录无效错误 - 2

    我有两个Rails模型,即Invoice和Invoice_details。一个Invoice_details属于Invoice,一个Invoice有多个Invoice_details。我无法使用accepts_nested_attributes_forinInvoice通过Invoice模型保存Invoice_details。我收到以下错误:(0.2ms)BEGIN(0.2ms)ROLLBACKCompleted422UnprocessableEntityin25ms(ActiveRecord:4.0ms)ActiveRecord::RecordInvalid(Validationfa

  5. c# - 如何在 ruby​​ 中调用 C# dll? - 2

    如何在ruby​​中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL

  6. C# 到 Ruby sha1 base64 编码 - 2

    我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha

  7. ruby - 字符串文字中的转义状态作为 `String#tr` 的参数 - 2

    对于作为String#tr参数的单引号字符串文字中反斜杠的转义状态,我觉得有些神秘。你能解释一下下面三个例子之间的对比吗?我特别不明白第二个。为了避免复杂化,我在这里使用了'd',在双引号中转义时不会改变含义("\d"="d")。'\\'.tr('\\','x')#=>"x"'\\'.tr('\\d','x')#=>"\\"'\\'.tr('\\\d','x')#=>"x" 最佳答案 在tr中转义tr的第一个参数非常类似于正则表达式中的括号字符分组。您可以在表达式的开头使用^来否定匹配(替换任何不匹配的内容)并使用例如a-f来匹配一

  8. ruby - Net::HTTP 获取源代码和状态 - 2

    我目前正在使用以下方法获取页面的源代码:Net::HTTP.get(URI.parse(page.url))我还想获取HTTP状态,而无需发出第二个请求。有没有办法用另一种方法做到这一点?我一直在查看文档,但似乎找不到我要找的东西。 最佳答案 在我看来,除非您需要一些真正的低级访问或控制,否则最好使用Ruby的内置Open::URI模块:require'open-uri'io=open('http://www.example.org/')#=>#body=io.read[0,50]#=>"["200","OK"]io.base_ur

  9. Matlab imread()读到了什么 (浅显 当复习文档了) - 2

    matlab打开matlab,用最简单的imread方法读取一个图像clcclearimg_h=imread('hua.jpg');返回一个数组(矩阵),往往是a*b*cunit8类型解释一下这个三维数组的意思,行数、数和层数,unit8:指数据类型,无符号八位整形,可理解为0~2^8的数三个层数分别代表RGB三个通道图像rgb最常用的是24-位实现方法,即RGB每个通道有256色阶(2^8)。基于这样的24-位RGB模型的色彩空间可以表现256×256×256≈1670万色当imshow传入了一个二维数组,它将以灰度方式绘制;可以把图像拆分为rgb三层,可以以灰度的方式观察它figure(1

  10. 基于C#实现简易绘图工具【100010177】 - 2

    C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.

随机推荐