需要使用代码从xml文件中删除XSD文件链接

本文关键字:文件 删除 XSD 链接 xml 代码 | 更新日期: 2023-09-27 18:27:42

我需要通过代码删除结果标记内的链接。

这是我的xml文件:

<?xml version="1.0" encoding="utf-8"?>
<result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.cfhdocmail.com/TestAPI2/Result.xsd https://www.cfhdocmail.com/TestAPI2/Result.xsd" xmlns="https://www.cfhdocmail.com/TestAPI2/Result.xsd">
  <data>
    <key>MailingGUID</key>
  <value>3699f54b-a05c-45d9-9f91-2d65fea9e2f3</value>
  </data><data>
    <key>OrderRef</key>
  <value>52177</value>
  </data>
</result>

但我想通过代码清空结果标记。我用过这个代码:

 XmlDocument xml = new XmlDocument();      
 xml.Load(Server.MapPath("~/XMLFile1.xml"));
 // var xdoc = XDocument.Load(xmlFile);
 var configuration = xml.DocumentElement.SelectSingleNode("result");  
 if (configuration != null)
 {               
     // code...
 }

我需要删除结果标签中的链接。

需要使用代码从xml文件中删除XSD文件链接

在类文件的顶部添加:

using System.Text.RegularExpressions;

你可以试试这个:

XmlDocument xml = new XmlDocument();
xml.Load(Server.MapPath("~/XMLFile1.xml"));
xml.DocumentElement.RemoveAllAttributes();
xml.LoadXml(Regex.Replace(xml.OuterXml, @"xmlns="".*?""", m => ""));

如果你只想去掉<result>元素上的所有内容(包括xmlns),那么就这样做:

XmlDocument xmldoc = new XmlDocument();
using (XmlTextReader xtr = new XmlTextReader(Server.MapPath("~/XMLFile1.xml")))
{
    xtr.Namespaces = false;
    xmldoc.Load(xtr);
}
xmldoc.DocumentElement.RemoveAllAttributes();

这将产生:

<?xml version="1.0" encoding="utf-8"?>
<result>
  <data>
    <key>MailingGUID</key>
  <value>3699f54b-a05c-45d9-9f91-2d65fea9e2f3</value>
  </data><data>
    <key>OrderRef</key>
  <value>52177</value>
  </data>
</result>

如果你想去掉特定的,那么使用RemoveAttribute(...)