studio - enviar xml a web service c#
¿Devolviendo XML de forma nativa en un servicio web.NET(C#)? (4)
Me doy cuenta de que los servicios web SOAP en .NET devuelven representación XML de cualquier objeto que devuelva el método web, pero si quiero devolver el formato de datos en XML, ¿cuál es el mejor objeto para almacenarlo?
Estoy usando la respuesta a esta pregunta para escribir mi XML, aquí está el código:
XmlWriter writer = XmlWriter.Create(pathToOutput);
writer.WriteStartDocument();
writer.WriteStartElement("People");
writer.WriteStartElement("Person");
writer.WriteAttributeString("Name", "Nick");
writer.WriteEndElement();
writer.WriteStartElement("Person");
writer.WriteStartAttribute("Name");
writer.WriteValue("Nick");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
Ahora puedo devolver este resultado como String a mi método web llamante, pero aparece como <string> XML HERE </string>
, ¿hay alguna forma de devolver el xml completo?
En su respuesta, proporcione un ejemplo de cómo usar dicho objeto con XmlWriter u otro objeto interno (si considera que XmlWriter es una opción incorrecta). El paquete System.Xml (espacio de nombres) tiene muchos objetos, pero no he podido descubrir documentación decente sobre cómo usar los objetos juntos o qué usar para qué situaciones.
Así es como terminé haciéndolo;
StringBuilder sb = new StringBuilder();
XmlWriter writer = XmlWriter.Create(sb, settings);
writer.WriteStartDocument();
writer.WriteStartElement("People");
writer.WriteStartElement("Person");
writer.WriteAttributeString("Name", "Nick");
writer.WriteEndElement();
writer.WriteStartElement("Person");
writer.WriteStartAttribute("Name");
writer.WriteValue("Nick");
writer.WriteEndAttribute();
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndDocument();
writer.Flush();
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(sb.ToString());
return xmlDocument;
Puede que no sea el mejor método, pero parece estar funcionando. Avísame si tienes un mejor método. Gracias.
puedes tener una clase que represente tu XML y devolver esa clase o también devolver tu xml dentro de un XMLNode
XmlElement, no XmlDocument.
Solo devuelve un XmlDocument. p.ej
[WebMethod]
public XmlDocument Quux()
{
}