necesario - salto de linea en xml
Error XML: no se pueden agregar caracteres de espacio en blanco al contenido (3)
Parece que estás intentando cargar un archivo XML en un XDocument, pero para hacerlo necesitas llamar a XDocument.Load("C://temp//contacts.xml");
- No puedes pasar un archivo XML al constructor.
También puede cargar una cadena de XML con XDocument.Parse(stringXml);
.
Cambia tu primera línea a:
var doc = XDocument.Load("c://temp//contacts.xml");
Y funcionará.
Para referencia, hay 4 sobrecargas del constructor XDocument
:
XDocument();
XDocument(Object[]);
XDocument(XDocument);
XDocument(XDeclaration, Object[]);
Es posible que haya estado pensando en el tercero ( XDocument(XDocument)
), pero para usarlo tendría que escribir:
var doc = new XDocument(XDocument.Load("c://temp//contacts.xml"));
Lo que sería redundante cuando var doc = XDocument.Load("c://temp//contacts.xml");
Será suficiente.
Ver XDocument Constructor para los detalles importantes.
Estoy tratando de abrir un xmldocument como este:
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");
Devuelvo un error en la primera línea:
Non whitespace characters cannot be added to content.
El archivo xml se ve así:
<?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>
Utilice XDocument.Parse (stringxml)
XDocument xdoc=XDocument.load(path)