如何在asp.net中返回web服务方法的xml文件

时间:2012-12-28 04:54:01

标签: asp.net asmx

我想在asp.net中返回一个XML文件作为web服务方法的输出。任何人都可以帮助一个例子。

这是我已经完成的网络服务方法。但是当我调用“Hai”方法时,我收到了一个错误。我得到的错误如下:

XML文档(1,287)中存在错误。

[WebMethod]
public XElement hai()
{
    try
    {


        XElement xmlTree1 = new XElement("Root",
                            new XElement("Child1", 1),
                            new XElement("Child2", 2),
                            new XElement("Child3", 3),
                            new XElement("Child4", 4),
                            new XElement("Child5", 5),
                            new XElement("Child6", 6)
        );

        return xmlTree1;
    }
    catch
    {
        throw;
    }
}

1 个答案:

答案 0 :(得分:0)

或者,您可以返回XmlDocument

[WebMethod]
public XmlDocument hai()
{
        XmlDocument doc = new XmlDocument();

        XmlNode rootNode = doc.CreateElement("products");
        doc.AppendChild(rootNode);

        XmlNode product1Node = doc.CreateElement("product");
        rootNode.AppendChild(product1Node);

        XmlNode product1NameNode = doc.CreateElement("Name");
        product1NameNode.InnerText = "Product 1";
        product1Node.AppendChild(product1NameNode);
        XmlNode product1ColorNode = doc.CreateElement("Color");
        product1ColorNode.InnerText = "Blue";
        product1Node.AppendChild(product1ColorNode);

        XmlNode product2Node = doc.CreateElement("product");
        rootNode.AppendChild(product2Node);

        XmlNode product2NameNode = doc.CreateElement("Name");
        product2NameNode.InnerText = "Product 2";
        product2Node.AppendChild(product2NameNode);
        XmlNode product2ColorNode = doc.CreateElement("Color");
        product2ColorNode.InnerText = "Yellow";
        product2Node.AppendChild(product2ColorNode);

        return doc;
}

<强>输出:

<?xml version="1.0" encoding="UTF-8"?>
<products>
    <product>
        <Name>Product 1</Name>
        <Color>Blue</Color>
    </product>
    <product>
        <Name>Product 2</Name>
        <Color>Yellow</Color>
    </product>
</products>