【问题标题】:How can return an xml file for a web service method in asp.net如何在 asp.net 中为 Web 服务方法返回 xml 文件
【发布时间】:2012-12-28 04:54:01
【问题描述】:

我想返回一个 XML 文件作为 asp.net 中 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;
    }
}

【问题讨论】:

标签: asp.net asmx


【解决方案1】:

或者,您可以返回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>

【讨论】:

  • 如何帮助 OP 使用不同的 XML 技术?
  • 无论使用何种 XML 技术,OP 都希望从 Web 服务返回 XML,因为他没有指定它。
  • OP 已经在使用 XElement。 XmlElement 会怎样更好?
  • 我从来没有说过 XmlDocument 比 XElement 更好我只是说它是一种替代方法。你的答案更糟糕,OP想要生成XML(他试图在他的示例代码中实现它+在你的答案下面的cmets中提到它)并返回它。您的代码只是加载一个文件并返回它。你是反对我答案的人吗?认真的吗?
  • 我查看了编辑历史。我的回答是在 OP 对问题提出任何细节之前做出的。它只说“我如何返回 XML 文件”。两天后,OP 添加了代码,显示他正在尝试做什么(以及他如何尝试调用该服务)。好像我没有注意到那个编辑。该编辑(略微)显示了 OP 收到的错误,但我们的答案都没有解决该错误。这就是为什么我刚刚删除了我的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 2023-04-05
  • 1970-01-01
  • 2010-11-20
  • 1970-01-01
相关资源
最近更新 更多