pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    • <bdo id='o2MMG'></bdo><ul id='o2MMG'></ul>

      <tfoot id='o2MMG'></tfoot>

    1. <small id='o2MMG'></small><noframes id='o2MMG'>

        <i id='o2MMG'><tr id='o2MMG'><dt id='o2MMG'><q id='o2MMG'><span id='o2MMG'><b id='o2MMG'><form id='o2MMG'><ins id='o2MMG'></ins><ul id='o2MMG'></ul><sub id='o2MMG'></sub></form><legend id='o2MMG'></legend><bdo id='o2MMG'><pre id='o2MMG'><center id='o2MMG'></center></pre></bdo></b><th id='o2MMG'></th></span></q></dt></tr></i><div class="0o2mguc" id='o2MMG'><tfoot id='o2MMG'></tfoot><dl id='o2MMG'><fieldset id='o2MMG'></fieldset></dl></div>
        <legend id='o2MMG'><style id='o2MMG'><dir id='o2MMG'><q id='o2MMG'></q></dir></style></legend>

        在 C# 中讀取帶有未閉合標簽的 XML

        Reading XML with unclosed tags in C#(在 C# 中讀取帶有未閉合標簽的 XML)

        <i id='VWug3'><tr id='VWug3'><dt id='VWug3'><q id='VWug3'><span id='VWug3'><b id='VWug3'><form id='VWug3'><ins id='VWug3'></ins><ul id='VWug3'></ul><sub id='VWug3'></sub></form><legend id='VWug3'></legend><bdo id='VWug3'><pre id='VWug3'><center id='VWug3'></center></pre></bdo></b><th id='VWug3'></th></span></q></dt></tr></i><div class="qaq2m0k" id='VWug3'><tfoot id='VWug3'></tfoot><dl id='VWug3'><fieldset id='VWug3'></fieldset></dl></div>
            <tbody id='VWug3'></tbody>

            <small id='VWug3'></small><noframes id='VWug3'>

              <tfoot id='VWug3'></tfoot>
                <bdo id='VWug3'></bdo><ul id='VWug3'></ul>
                <legend id='VWug3'><style id='VWug3'><dir id='VWug3'><q id='VWug3'></q></dir></style></legend>
                • 本文介紹了在 C# 中讀取帶有未閉合標簽的 XML的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我有一個程序可以運行測試并生成一個包含所有結果的網格視圖,以及一個 XML 日志文件.該程序還具有加載日志以復制網格視圖的功能.

                  I have a program which runs tests and generates a grid-view with all the results in it, and also an XML log file. The program also has the functionality to load logs to replicate the grid-view.

                  由于程序在執行時寫入日志文件,如果它崩潰,日志文件將缺少結束標記.我仍然希望能夠加載這些 XML 文件,因為仍然有很多有價值的數據可以幫助我找出導致崩潰的原因.

                  Since the program writes to the log file as its executing, if it crashes the log file will be missing closing tags. I still want to be able to load these XML files though as there is still lots of valuable data that can help me find out what caused the crash.

                  我在想也許可以通過 XML 文件并關閉任何未關閉的 XML 標記,或者可能編寫某種臟"XML 閱讀器來假裝每個標記都已關閉.關于我可以做什么或應該如何進行的任何想法?

                  I was thinking maybe going through the XML file and closing off any unclosed XML tag, or maybe writing some kind of "Dirty" XML reader that would pretend every tag was closed. Any ideas on what I could do or how I should proceed?

                  <Root>
                    <Parent>
                       <Child Name="One">
                          <Foo>...</Foo>
                          <Bar>...</Bar>
                          <Baz>...</Baz>
                       </Child>
                       <Child Name="Two">
                          <Foo>...</Foo>
                          <Bar>...</Bar>
                   !-- Crash happens here --!
                  

                  從此我仍然會期待生產

                   Child   Foo   Bar   Baz
                   One     ...   ...   ...
                   Two     ...   ...    /
                  

                  推薦答案

                  大概它在被截斷之前都是有效的......所以使用 XmlReader 可以工作......只是準備好處理它吧當它到達截斷點時.

                  Presumably it's all valid until it's truncated... so using XmlReader could work... just be prepared to handle it going bang when it reaches the truncation point.

                  現在 XmlReader API 不是特別好 (IMO),所以您可能想要移動到一些有趣數據的開頭(這些數據本身必須是完整的),然后調用 XNode.ReadFrom(XmlReader) 方法以簡單易用的形式獲取該數據.然后移動到下一個元素的開頭并執行相同的操作,等等.

                  Now the XmlReader API isn't terribly pleasant (IMO) so you might want to move to the start of some interesting data (which would have to be complete in itself) and then call the XNode.ReadFrom(XmlReader) method to get that data in a simple-to-use form. Then move to the start of the next element and do the same, etc.

                  示例代碼:

                  using System;
                  using System.Linq;
                  using System.Xml;
                  using System.Xml.Linq;
                  
                  class Program
                  {
                      static void Main(string[] args)
                      {
                          using (XmlReader reader = XmlReader.Create("test.xml"))
                          {
                              while (true)
                              {
                                  while (reader.NodeType != XmlNodeType.Element ||
                                      reader.LocalName != "Child")
                                  {
                                      if (!reader.Read())
                                      {
                                          Console.WriteLine("Finished!");
                                      }
                                  }
                                  XElement element = (XElement) XNode.ReadFrom(reader);
                                  Console.WriteLine("Got child: {0}", element.Value);
                              }
                          }
                      }
                  }
                  

                  示例 XML:

                  <Root>
                    <Parent>
                      <Child>First child</Child>
                      <Child>Second child</Child>
                      <Child>Broken
                  

                  樣本輸出:

                  得到孩子:第一個孩子得到孩子:第二個孩子

                  Got child: First child Got child: Second child

                  Unhandled Exception: System.Xml.XmlException: Unexpected end of file has occurred
                  The following elements are not closed: Child, Parent, Root. Line 5, position 18.
                     at System.Xml.XmlTextReaderImpl.Throw(String res, String arg)
                     at System.Xml.XmlTextReaderImpl.ParseElementContent()
                     at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r)
                     at System.Xml.Linq.XContainer.ReadContentFrom(XmlReader r, LoadOptions o)
                     at System.Xml.Linq.XElement.ReadElementFrom(XmlReader r, LoadOptions o)
                     at System.Xml.Linq.XNode.ReadFrom(XmlReader reader)
                     at Program.Main(String[] args)
                  

                  所以很明顯你想捕捉異常,但你可以看到它成功地讀取了前兩個元素.

                  So obviously you'd want to catch the exception, but you can see that it managed to read the first two elements correctly.

                  這篇關于在 C# 中讀取帶有未閉合標簽的 XML的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                  【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                  相關文檔推薦

                  Ignore whitespace while reading XML(讀取 XML 時忽略空格)
                  XML to LINQ with Checking Null Elements(帶有檢查空元素的 XML 到 LINQ)
                  Parsing tables, cells with Html agility in C#(在 C# 中使用 Html 敏捷性解析表格、單元格)
                  delete element from xml using LINQ(使用 LINQ 從 xml 中刪除元素)
                  Parse malformed XML(解析格式錯誤的 XML)
                  extracting just page text using HTMLAgilityPack(使用 HTMLAgilityPack 僅提取頁面文本)
                      <bdo id='uJypM'></bdo><ul id='uJypM'></ul>

                        <small id='uJypM'></small><noframes id='uJypM'>

                        <i id='uJypM'><tr id='uJypM'><dt id='uJypM'><q id='uJypM'><span id='uJypM'><b id='uJypM'><form id='uJypM'><ins id='uJypM'></ins><ul id='uJypM'></ul><sub id='uJypM'></sub></form><legend id='uJypM'></legend><bdo id='uJypM'><pre id='uJypM'><center id='uJypM'></center></pre></bdo></b><th id='uJypM'></th></span></q></dt></tr></i><div class="iww2cs0" id='uJypM'><tfoot id='uJypM'></tfoot><dl id='uJypM'><fieldset id='uJypM'></fieldset></dl></div>

                        1. <tfoot id='uJypM'></tfoot>
                            <tbody id='uJypM'></tbody>

                          • <legend id='uJypM'><style id='uJypM'><dir id='uJypM'><q id='uJypM'></q></dir></style></legend>

                            主站蜘蛛池模板: 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 无锡不干胶标签,卷筒标签,无锡瑞彩包装材料有限公司 | 阴离子_阳离子聚丙烯酰胺厂家_聚合氯化铝价格_水处理絮凝剂_巩义市江源净水材料有限公司 | ph计,实验室ph计,台式ph计,实验室酸度计,台式酸度计 | MTK核心板|MTK开发板|MTK模块|4G核心板|4G模块|5G核心板|5G模块|安卓核心板|安卓模块|高通核心板-深圳市新移科技有限公司 | 环比机械| 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 汽车润滑油厂家-机油/润滑油代理-高性能机油-领驰慧润滑科技(河北)有限公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 两头忙,井下装载机,伸缩臂装载机,30装载机/铲车,50装载机/铲车厂家_价格-莱州巨浪机械有限公司 | 广东风淋室_广东风淋室厂家_广东风淋室价格_广州开源_传递窗_FFU-广州开源净化科技有限公司 | 水厂自动化-水厂控制系统-泵站自动化|控制系统-闸门自动化控制-济南华通中控科技有限公司 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 丹尼克尔拧紧枪_自动送钉机_智能电批_柔性振动盘_螺丝供料器品牌 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! | 意大利Frascold/富士豪压缩机_富士豪半封闭压缩机_富士豪活塞压缩机_富士豪螺杆压缩机 | 金环宇|金环宇电线|金环宇电缆|金环宇电线电缆|深圳市金环宇电线电缆有限公司|金环宇电缆集团 | app开发|app开发公司|小程序开发|物联网开发||北京网站制作|--前潮网络 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | EDLC超级法拉电容器_LIC锂离子超级电容_超级电容模组_软包单体电容电池_轴向薄膜电力电容器_深圳佳名兴电容有限公司_JMX专注中高端品牌电容生产厂家 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | 成都网站建设制作_高端网站设计公司「做网站送优化推广」 | 三佳互联一站式网站建设服务|网站开发|网站设计|网站搭建服务商 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 棕刚玉_白刚玉_铝酸钙-锐石新材料| 无菌实验室规划装修设计-一体化实验室承包-北京洁净净化工程建设施工-北京航天科恩实验室装备工程技术有限公司 | H型钢切割机,相贯线切割机,数控钻床,数控平面钻,钢结构设备,槽钢切割机,角钢切割机,翻转机,拼焊矫一体机 | 沥青灌缝机_路面灌缝机_道路灌缝机_沥青灌缝机厂家_济宁萨奥机械有限公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 | 对夹式止回阀厂家,温州对夹式止回阀制造商--永嘉县润丰阀门有限公司 | 派克防爆伺服电机品牌|国产防爆伺服电机|高低温伺服电机|杭州摩森机电科技有限公司 | 杜甫仪器官网|实验室平行反应器|升降水浴锅|台式低温循环泵 | 管理会计网-PCMA初级管理会计,中级管理会计考试网站 | 检验科改造施工_DSA手术室净化_导管室装修_成都特殊科室建设厂家_医疗净化工程公司_四川华锐 | 点焊机-缝焊机-闪光对焊机-电阻焊设备生产厂家-上海骏腾发智能设备有限公司 | 实验室pH计|电导率仪|溶解氧测定仪|离子浓度计|多参数水质分析仪|pH电极-上海般特仪器有限公司 | 知企服务-企业综合服务(ZiKeys.com)-品优低价、种类齐全、过程管理透明、速度快捷高效、放心服务,知企专家! |