求教!Excel导出成xml后,动态获得所有namespace的prefix失败。
一个空白Excel,比如Excel2003导出成book1.xml。以前我在网上搜索到一段代码,动态把所有namespace的prefix都抓出来。昨天正好把Excel导出的xml读取,发现得不到prefix。
原始代码:
public static XmlNamespaceManager PrepopulateNamespaces(XmlDocument document)
{
XmlNamespaceManager result = new XmlNamespaceManager(document.NameTable);
var namespaces = (from XmlNode n in document.SelectNodes("//*|@*")
where n.NamespaceURI != string.Empty
select new
{
Prefix = n.GetPrefixOfNamespace(n.NamespaceURI),
Namespace = n.NamespaceURI
}).Distinct();
XmlNodeList xl=document.SelectNodes("//*|@*");
foreach (var item in namespaces)
{
result.AddNamespace(item.Prefix, item.Namespace);
Console.WriteLine(item.Prefix.ToString()+" ----- "+item.Namespace.ToString());
}
return result;
}
这里我debug时发现prefix居然是string.empty。
请教我该如何才能动态得到所有prefix呢? x XML 命名空间 Excel
补充:.NET技术 , C#