J'essaye d'ouvrir un xmldocument comme ceci:
var doc = new XDocument("c:\\temp\\contacts.xml");
var reader = doc.CreateReader();
var namespaceManager = new XmlNamespaceManager(reader.NameTable);
namespaceManager.AddNamespace("g", g.NamespaceName);
var node = doc.XPathSelectElement("/Contacts/Contact/g:Name[text()='Patrick Hines']", namespaceManager);
node.Value = "new name Richard";
doc.Save("c:\\temp\\newcontacts.xml");
Je retourne une erreur dans la première ligne:
Non whitespace characters cannot be added to content.
Le fichier xml ressemble à ceci:
<?xml version="1.0" encoding="utf-8"?>
<Contacts xmlns:g="http://something.com">
<Contact>
<g:Name>Patrick Hines</g:Name>
<Phone>206-555-0144</Phone>
<Address>
<street>this street</street>
</Address>
</Contact>
</Contacts>
On dirait que vous essayez de charger un fichier XML dans un XDocument, mais vous devez pour cela appeler XDocument.Load("C:\\temp\\contacts.xml");
. Vous ne pouvez pas transmettre de fichier XML au constructeur.
Vous pouvez également charger une chaîne de code XML avec XDocument.Parse(stringXml);
.
Changez votre première ligne en:
var doc = XDocument.Load("c:\\temp\\contacts.xml");
Et ça va marcher.
Pour référence, il y a 4 surcharges du constructeur XDocument
:
XDocument();
XDocument(Object[]);
XDocument(XDocument);
XDocument(XDeclaration, Object[]);
Vous pensiez peut-être au troisième (XDocument(XDocument)
), mais pour utiliser celui-ci, vous devez écrire:
var doc = new XDocument(XDocument.Load("c:\\temp\\contacts.xml"));
Ce qui serait redondant lorsque var doc = XDocument.Load("c:\\temp\\contacts.xml");
suffira.
Voir XDocument Constructor pour plus de détails.
XDocument xdoc=XDocument.load(path)
Utilisez XDocument.Parse (string xml)