XElement对象移除指定节点属性

当XML数据带有xmlns命名空间,直接获取节点可能出现获取不到的情况,这时获取的时候就需要添加命名空间才能正常获取到相关值,示例如下

string xmlcontent = $"<table border=\"0\" layout=\"center\" id=\"table1\" xmlns=\"http://shangyuan/shuju_yuliao\">\r\n  <tgroup cols=\"5\">\r\n    <colspec colname=\"c1\" colnum=\"1\" colwidth=\"1.0*\" />\r\n    <colspec colname=\"c2\" colnum=\"2\" colwidth=\"1.0*\" />\r\n    <colspec colname=\"c3\" colnum=\"3\" colwidth=\"1.0*\" />\r\n    <colspec colname=\"c4\" colnum=\"4\" colwidth=\"1.0*\" />\r\n    <colspec colname=\"c5\" colnum=\"5\" colwidth=\"1.0*\" />\r\n    <tbody>\r\n      <row>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>XXXXXXXXXX\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文>                 <外字 src=\"images/ZSK89824-000010-L00008.jpg\" /></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文>                 <外字 src=\"images/T-ZSK89824-000009-L00007-1-1.png\" /></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n      </row>\r\n      <row>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n        <entry>\r\n          <段落>\r\n            <正文></正文>\r\n          </段落>\r\n        </entry>\r\n      </row>\r\n    </tbody>\r\n  </tgroup>\r\n</table>";

            XElement xelement = XElement.Parse(xmlcontent);
            XNamespace nsr = "http://shangyuan/shuju_yuliao";
            var aaa = xelement.Elements(nsr + "tgroup");
            xelement.DescendantsAndSelf(nsr + "tgroup").ToList().ForEach(e => e.Attributes().Remove());
            xelement.DescendantsAndSelf(nsr + "colspec").ToList().ForEach(e => e.Attributes().Remove());

 

posted @ 2024-10-10 09:52  ProgrammerWorld  阅读(0)  评论(0编辑  收藏  举报