• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 713
  • Last Modified:

can a web method in a web service accept an xml string and return an xml string?

Hi,
Can somebody please clarify how to parse an xml string in a web method and also return xml in the form of a string? I am not sure if I framed the question meaningfully? My web method's signature is as follows.
public string CreateAccount(string XMLInfo)
In the above method, XMLInfo is a string consisting of xml and I should be able to parse the xml in the web method. And also I would return multiple values but through a single string consisting of again xml. It would be a great help if you could post me a code sample in C#.
Thanks for any help!
0
ipjyo
Asked:
ipjyo
  • 2
1 Solution
 
Nirmalan NagenthiranCommented:
Yes its possible. Pass that XML file as a string and inside the web method convert it back to XML, do all XML processing.
Here is the code piece.

 [WebMethod]
 public string ProcessXML(string xmlInfo)
 {
     XmlDocument document = new XmlDocument();
     document.LoadXml(xmlInfo);
 
     // Add more values to the XML file.
         
     // Return XML as String.
     return document.InnerXml;
 }

Open in new window

0
 
ipjyoAuthor Commented:
Thanks for the response.
could you also clarify how would the consumer of this web method know what input parameters that should be given?
If we pass 5 individual parameters then the consumer will have 5 text boxes to enter data. but how will this happen if we pass xml as a string? what will the consumer see when he tries to access the web service? Thank you!
0
 
Nirmalan NagenthiranCommented:
Please find the attach code pieces. Let me know your thoughts.
<!-- UserInput.xml -->
 
<?xml version="1.0" encoding="UTF-8"?>
<USERINPUT>
    <TITLE>Add your Title Here</TITLE>
    <FIRSTNAME>Add your Firstname</FIRSTNAME> 
    <LASTNAME>Add your Lastname</LASTNAME>
    <ADDRESS>Add your address</ADDRESS>
    <TELEPHONE>Add your telephone</TELEPHONE>
</USERINPUT>   
 
// Web Service - Web Method
 
[WebMethod]
public string CreateAccount(string xmlinfo)
{
    // Load XML.
    XmlDocument document = new XmlDocument();
    document.LoadXml(xmlinfo);
 
    // Add/Modify values to the XML file.
            
    // Return XML as String.
    return document.InnerXml;
}
 
// Consume WebService
 
protected void Page_Load(object sender, EventArgs e)
{
     // Load the UserInput.Xml
     XmlDocument doc = new XmlDocument();
     doc.Load(@"C:\UserInput.xml");
 
     // Add 5 input values into the XML file
 
     // Call the Webservice and pass the XML.
     Service1 service = new Service1();
     string responseXML =  service.CreateAccount(doc.InnerText);
 
     // Again load the response as XML.
     doc.LoadXml(responseXML);
 
     // Do other manipulations here..
}

Open in new window

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now