首页 > 代码库 > xslt 命名空间

xslt 命名空间


1
/// <summary> 2 /// 移除Xml文本中的命名空间和前缀 3 /// </summary> 4 /// <param name="xmlText">源xml文本</param> 5 /// <returns>移除名称空间和前缀后的xml文本</returns> 6 public static string RemovePrefixAndNamespace(string xmlText) 7 { 8 if (string.IsNullOrEmpty(xmlText)) 9 {10 return xmlText;11 }12 13 Regex regex = new Regex("( xmlns(:(?<prefix>[^=]*))*=)\"[^\"]*\"", RegexOptions.IgnoreCase | RegexOptions.Multiline);14 MatchCollection collection = regex.Matches(xmlText);15 if (collection.Count <= 0)16 {17 return xmlText;18 }19 20 List<string> prefixes=new List<string>();21 foreach (Match match in collection)22 {23 string temp = match.Groups["prefix"].Value;24 if (!string.IsNullOrEmpty(temp) && !prefixes.Contains(temp))25 {26 prefixes.Add(temp);27 }28 }29 30 StringBuilder rePattern = new StringBuilder("( xmlns(:[^=]*)*=\"[^\"]*\")");31 foreach (string prefix in prefixes)32 {33 rePattern.Append(string.Format("|({0}:)", prefix));34 }35 Regex reReplace = new Regex(rePattern.ToString(), RegexOptions.IgnoreCase | RegexOptions.Multiline);36 xmlText=reReplace.Replace(xmlText, "");37 38 return xmlText;39 }

带命名空间匹配比较麻烦,如不需求,移除XSLT  命名空间

xslt 命名空间