XmlDocument ignorer xmlns

J'ai XHTML fichier qui commence par:

<html xmlns="http://www.w3.org/1999/xhtml">

- Je le charger:

XmlDocument xml = new XmlDocument();
StringReader sr = new StringReader(html);
XmlTextReader xmltr = new XmlTextReader(sr);
xmltr.Namespaces = false;
xml.Load(xmltr);

Quand je l'appelle xml.InnerXml j'ai toujours eu de The 'xmlns' attribute is bound to the reserved namespace 'http://www.w3.org/2000/xmlns/'. exception et ne peut pas accéder intérieure xml de mon XmlDocument. Comment se débarrasser des xmlns au cours de la charge?

SOLUTION EST:

XmlNode xmln = xml.SelectSingleNode("//html");
if (xmln != null)
    ((XmlElement)xmln).RemoveAttribute("xmlns");
Votre XHTML déclaration parle http://www.w3.org/1999/xhtml mais l'erreur que vous avez décrit parle http://www.w3.org/2000/xmlns - êtes-vous sûr qu'ils sont tous les deux corrects?
Oui, mon troisième partie XHTML a 1999 et à l'exception, dit-2000.
Le plus important est le "xhtml" vs "xmlns" peu...
Oui, et il ne fonctionne pas. Vous obtiendrez toujours des exception lorsque vous essayez de toucher ce nœud en aucune façon. Mais tout est bon pour tous les autres nœuds. Vous pouvez toujours obtenir tout intérieure nœud via XPath (comme je le fais). Comment résoudre ce problème?
Ok, j'ai juste reproduit le problème - et il s'en va, si vous vous débarrasser de la "espaces de noms = false". Pourquoi tu fais ça?

OriginalL'auteur Denis | 2012-01-27