Et uheldigt symptom på noget xmldata, der i en løsning ikke accepterer namespace prefixes, kan det desværre være nødvendigt at fjerne dem. Har man data i følgende format:

   1:  <?xml version="1.0" encoding="utf-8"?>
   2:  <ns0:MineXmlData xmlns:ns0="http://www.google.com/schemas/minedata">
   3:      <ns0:Personer>
   4:          <ns0:Person></ns0:Person>
   5:      </ns0:Personer>
   6:  </ns0:MineXmlData>


Kan man med følgende regexp fjerne 'ns0' prefix fra xml data.

   1:  (?<=<)[a-zA-Z0-9]+:|(?<=/)[a-zA-Z0-9]+:|(?<=xmlns):.+?(?==)


.Net kode:

   1:  /// <summary>
   2:  /// Fjerner namespace prefix fra xml data.
   3:  /// </summary>
   4:  /// <param name="xmlData">xml data.</param>
   5:  /// <returns>Xml data uden namespace prefix.</returns>
   6:  public static XmlDocument FjernNamespacePrefix(string xmlData)
   7:  {
   8:      string pattern = "(?<=<)[a-zA-Z0-9]+:|(?<=/)[a-zA-Z0-9]+:|(?<=xmlns):.+?(?==)";
   9:      var regXml = new Regex(pattern, RegexOptions.Compiled);
  10:      
  11:      var behandletXmlDokument = new XmlDocument();
  12:      behandletXmlDokument.LoadXml(regXml.Replace(xmlData, string.Empty));
  13:      
  14:      return behandletXmlDokument;
  15:  }


Dette er dog ikke særligt velset, da namespaces netop gør xml repræsentationen typestærkt og undgåelse af sammenfald med andre xml data af samme navn. Hvis der er en god grund til at fjerne namespaces, kan ovenstående regexp bruges.