久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

    • <bdo id='cqyRz'></bdo><ul id='cqyRz'></ul>
      1. <legend id='cqyRz'><style id='cqyRz'><dir id='cqyRz'><q id='cqyRz'></q></dir></style></legend>

      2. <small id='cqyRz'></small><noframes id='cqyRz'>

        <tfoot id='cqyRz'></tfoot>

        <i id='cqyRz'><tr id='cqyRz'><dt id='cqyRz'><q id='cqyRz'><span id='cqyRz'><b id='cqyRz'><form id='cqyRz'><ins id='cqyRz'></ins><ul id='cqyRz'></ul><sub id='cqyRz'></sub></form><legend id='cqyRz'></legend><bdo id='cqyRz'><pre id='cqyRz'><center id='cqyRz'></center></pre></bdo></b><th id='cqyRz'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='cqyRz'><tfoot id='cqyRz'></tfoot><dl id='cqyRz'><fieldset id='cqyRz'></fieldset></dl></div>
      3. 刪除沒有子節點的父節點

        remove parent node without childs nodes(刪除沒有子節點的父節點)
          <tbody id='iyBMU'></tbody>

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

          <bdo id='iyBMU'></bdo><ul id='iyBMU'></ul>

          <tfoot id='iyBMU'></tfoot>

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

            <legend id='iyBMU'><style id='iyBMU'><dir id='iyBMU'><q id='iyBMU'></q></dir></style></legend>

                  本文介紹了刪除沒有子節點的父節點的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                  問題描述

                  我有一個關于從 xml 文件中刪除特定節點的問題.

                  I have a question related to removing specific nodes from xml file.

                  這是我的 XML 示例:

                  Here is my sample of XML:

                  <?xml version="1.0" encoding="UTF-8"?>
                  <root>
                    <nodeA attribute="1">
                      <nodeB attribute="table">
                        <nodeC attribute="500"></nodeC>
                        <nodeC attribute="5"></nodeC>
                      </nodeB>
                      <nodeB attribute="3">
                        <nodeC attribute="4"></nodeC>
                        <nodeC attribute="5"></nodeC>
                        <nodeC attribute="5"></nodeC>
                      </nodeB>
                      <nodeB attribute="placeHolder">
                      <nodeB attribute="toRemove">
                        <nodeB attribute="glass"></nodeB>
                          <nodeE attribute="7"></nodeE>
                        <nodeB attribute="glass"></nodeB>
                        <nodeB attribute="glass"></nodeB>
                      </nodeB>
                      </nodeB>
                      <nodeB attribute="3">
                        <nodeC attribute="4"></nodeC>
                        <nodeC attribute="5"></nodeC>
                        <nodeC attribtue="5"></nodeC>
                       </nodeB>
                      <nodeB attribute="placeHolder">
                      <nodeB attribute="toRemove">
                        <nodeB attribute="glass"></nodeB>
                          <nodeE attribute="7"></nodeE>
                        <nodeB attribute="glass"></nodeB>
                        <nodeB attribute="glass"></nodeB>
                      </nodeB>
                      </nodeB>
                    </nodeA>
                  </root>
                  

                  我想刪除節點 nodeB="toRemove" 而不刪除該節點的子節點.之后我需要對 nodeB attribute="placeHolder" 做同樣的事情.部分結果如下所示:

                  I would like to remove node nodeB="toRemove" without removing childrens of this node. After that I need to do same thing with nodeB attribute="placeHolder". Part of result would look like that:

                       <nodeB attribute="3">
                        <nodeC attribute="4"></nodeC>
                        <nodeC attribute="5"></nodeC>
                        <nodeC attribtue="5"></nodeC>
                       </nodeB>
                       <nodeB attribute="glass"></nodeB>
                          <nodeE attribute="7"></nodeE>
                       <nodeB attribute="glass"></nodeB>
                       <nodeB attribute="glass"></nodeB>
                  

                  我一直在嘗試這樣的代碼來實現:

                  I have been trying code like this to achive that:

                          XmlNodeList nodeList = doc.SelectNodes("http://nodeB[@attribute="toRemove"]");
                  
                          foreach (XmlNode node in nodeList)
                          {
                              foreach (XmlNode child in node.ChildNodes)
                              {
                                  node.ParentNode.AppendChild(child);
                              }
                              node.ParentNode.RemoveChild(node);
                          }
                          doc.Save(XmlFilePathSource);
                  

                  我能夠找到具有所需屬性 toRemove 或 placeHolder 的節點,但是我無法將此節點的子節點上移一級.在這種情況下你能幫我嗎?它可以是 Linq、XDocument、XmlReader 的解決方案,但我更喜歡使用 XmlDocument.感謝您提前為我提供的任何幫助.

                  I am able to locate node with desired attribute toRemove or placeHolder, however I am not able to move children of this nodes up by one level. Could you help me in this case? It can be solution with Linq, XDocument, XmlReader but I prefer working with XmlDocument. Thank you for any help you could provide me in advance.

                  在這種情況下,我使用了 Chuck Savage 在下面編寫的稍微修改過的代碼(以保持順序).一次刪除

                  In this case I have used slightly modified code(to preserve order) that Chuck Savage wrote bellow. Once to remove

                    <nodeB attribute="toRemove"> </nodeB>
                  

                  然后對

                    <nodeB attribute="placeHolder"></nodeB>
                  

                  這里是稍微修改的代碼

                    XElement root = XElement.Load(XmlFilePathSource); 
                    var removes = root.XPathSelectElements("http://nodeB[@attribute="toRemove"]");
                    foreach (XElement node in removes.ToArray())
                    {
                      node.Parent.AddAfterSelf(node.Elements());
                      node.Remove();
                    }
                    root.Save(XmlFilePathSource);
                  

                  @MiMo 提供的 xslt 方法在這種情況下也非常有用.

                  xslt approach provided by @MiMo is very useful as well in this case.

                  推薦答案

                  使用 Linq-to-XML 和您的 XPath,

                  Using Linq-to-XML and your XPath,

                  XElement root = XElement.Load(XmlFilePathSource); // or .Parse(string)
                  var removes = root.XPathSelectElements("http://nodeB[@attribute="toRemove"]");
                  foreach (XElement node in removes.ToArray())
                  {
                      node.AddBeforeSelf(node.Elements());
                      node.Remove();
                  }
                  root.Save(XmlFilePathSource);
                  

                  注意:XPath 在 System.Xml.XPath

                  Note: XPath is available in System.Xml.XPath

                  注意 2:您可以使用 這些擴展 與 XmlDocument 進行轉換,因為您更喜歡 XmlDocument.

                  Note2: You can convert to/from XmlDocument using these extensions since you prefer XmlDocument.

                  這篇關于刪除沒有子節點的父節點的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

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

                  相關文檔推薦

                  Ignore whitespace while reading XML(讀取 XML 時忽略空格)
                  XML to LINQ with Checking Null Elements(帶有檢查空元素的 XML 到 LINQ)
                  Reading XML with unclosed tags in C#(在 C# 中讀取帶有未閉合標簽的 XML)
                  Parsing tables, cells with Html agility in C#(在 C# 中使用 Html 敏捷性解析表格、單元格)
                  delete element from xml using LINQ(使用 LINQ 從 xml 中刪除元素)
                  Parse malformed XML(解析格式錯誤的 XML)

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

                  <tfoot id='prG7Q'></tfoot>
                  <legend id='prG7Q'><style id='prG7Q'><dir id='prG7Q'><q id='prG7Q'></q></dir></style></legend>

                    • <bdo id='prG7Q'></bdo><ul id='prG7Q'></ul>
                    • <i id='prG7Q'><tr id='prG7Q'><dt id='prG7Q'><q id='prG7Q'><span id='prG7Q'><b id='prG7Q'><form id='prG7Q'><ins id='prG7Q'></ins><ul id='prG7Q'></ul><sub id='prG7Q'></sub></form><legend id='prG7Q'></legend><bdo id='prG7Q'><pre id='prG7Q'><center id='prG7Q'></center></pre></bdo></b><th id='prG7Q'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='prG7Q'><tfoot id='prG7Q'></tfoot><dl id='prG7Q'><fieldset id='prG7Q'></fieldset></dl></div>
                              <tbody id='prG7Q'></tbody>
                            主站蜘蛛池模板: 亚洲一区二区视频 | 午夜国产羞羞视频免费网站 | 孕妇一级毛片 | 午夜影视在线观看 | 欧美色成人 | 免费av观看 | 韩日精品一区 | 国产精品欧美一区二区 | 国产精品一区二区三区久久 | 亚洲一区二区久久久 | 欧美中文在线 | 精品一区二区三区免费视频 | 激情久久av一区av二区av三区 | www亚洲免费国内精品 | 91亚洲精品在线观看 | 欧美日韩一区二区三区在线观看 | 欧美黄色一级毛片 | 亚洲欧美日韩精品 | 国产精品久久久久久久久久久久久久 | 日韩在线中文字幕 | 国产精品国产精品国产专区不卡 | 国产一区二区影院 | 日韩视频免费在线 | 亚洲国产情侣自拍 | 国产成人精品久久 | 美女高潮网站 | 精品av| 久久99视频精品 | 久久久激情| 久在线观看 | 91av在线影院 | 中文字幕精品一区二区三区在线 | 国产传媒毛片精品视频第一次 | 日韩一区二区在线视频 | 免费黄色录像视频 | 日韩免费一区二区 | 日韩精品一区中文字幕 | 欧美激情精品久久久久久变态 | 日本午夜一区二区三区 | 国产欧美精品一区二区三区 | 91av免费版|