如何接收网站生成的XML数据?

问题描述 投票:0回答:3

有一些 PHP API 服务,当在查询字符串中发送一些参数时,它会返回 XML 格式的日期。所以我想知道如何发送调用页面并在 C# .net 中返回结果。喜欢 XML 阅读器或 XML 方案吗?

php .net xml
3个回答
4
投票

您可以将 url 地址传递给 XmlReader:

using (var reader = XmlReader.Create("http://example.com/somexml"))
{
    // TODO: parse
}

另一种可能性是使用 XDocument:

var doc = XDocument.Load("http://example.com/somexml");
// TODO: manipulate the document

另一种可能性是使用 WebClient:

using (var client = new WebClient())
{
    string xml = client.DownloadString("http://example.com/somexml");
    // TODO: feed the xml to your favorite XML parser
}

3
投票

如果参数位于查询字符串中,则非常简单...我会根据 Darin 的回答使用

XmlReader.Create
,然后为了便于使用 XML 工作,我会使用 LINQ to XML:

XDocument doc;
using (var reader = XmlReader.Create("http://example.com/somexml"))
{
    doc = XDocument.Load(reader);
}
// Now work with doc

(编辑:正如 Darin 指出的,

XDocument.Load(string uri)
使这变得更简单 - 忽略文档说它从 file 加载数据的事实。)

如果您需要对 HTTP 方面进行更多控制(例如包含发布数据),您可以使用类似以下内容:

WebRequest request = WebRequest.Create(...);
// Fiddle with request here

XDocument doc;
using (WebResponse response = request.GetResponse())
using (Stream data = response.GetResponseStream())
{
    doc.Load(data);
}
// Use doc here

请注意,这都是同步的 - 也可以异步解析所有内容,但需要更多工作。


0
投票

更好的方法是

XmlDocument xdoc;
xdoc = new XmlDocument();
xdoc.Load(XmlReader.Create("weblink"));

无法分析 XDocument 并提取其 XML 值,而这在 XmlDocument 中是可能的

© www.soinside.com 2019 - 2024. All rights reserved.