如何用C#从XML中删除所有名称空间?

如何用C#从XML中删除所有名称空间?

我正在寻找干净、优雅和智能的解决方案来从所有XML元素中删除名称空间?这样做会有什么作用呢?

定义的接口:

public interface IXMLUtils{
        string RemoveAllNamespaces(string xmlDocument);}

从以下位置删除NS的示例XML:

<?xml version="1.0" encoding="utf-16"?><ArrayOfInserts xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:
xsd="http://www.w3.org/2001/XMLSchema">
  <insert>
    <offer xmlns="http://schema.peters.com/doc_353/1/Types">0174587</offer>
    <type2 xmlns="http://schema.peters.com/doc_353/1/Types">014717</type2>
    <supplier xmlns="http://schema.peters.com/doc_353/1/Types">019172</supplier>
    <id_frame xmlns="http://schema.peters.com/doc_353/1/Types" />
    <type3 xmlns="http://schema.peters.com/doc_353/1/Types">
      <type2 />
      <main>false</main>
    </type3>
    <status xmlns="http://schema.peters.com/doc_353/1/Types">Some state</status>
  </insert></ArrayOfInserts>

在调用RemoveAllNamesspace(XmlWithLotOfns)之后,我们应该得到:

  <?xml version="1.0" encoding="utf-16"?>
    <ArrayOfInserts>
      <insert>
        <offer >0174587</offer>
        <type2 >014717</type2>
        <supplier >019172</supplier>
        <id_frame  />
        <type3 >
          <type2 />
          <main>false</main>
        </type3>
        <status >Some state</status>
      </insert>
    </ArrayOfInserts>

预编写的解决方案语言是.NET 3.5SP1上的C#。


幕布斯7119047
浏览 372回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP