首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接从2个api调用返回的2个xml文件?

如何连接从2个api调用返回的2个xml文件?
EN

Stack Overflow用户
提问于 2010-09-14 21:16:39
回答 3查看 163关注 0票数 0

我正在使用第三方应用程序的web服务API通过我的web应用程序搜索数据。

有一个联系人API和一个客户端API。contacts表保存客户端的ID,但不保存名称。要搜索和显示联系人并显示客户端的名称,我需要调用这两个API。

连接两个生成的XML文件的最佳方式是什么?我使用的是.Net 4.0。

EN

回答 3

Stack Overflow用户

发布于 2010-09-14 21:23:40

我会做得又快又脏:

代码语言:javascript
复制
XDocument
    .Parse(
        "<bigDoc>"
        +XDocument.Parse("<a><b/></a>").Root
        +XDocument.Parse("<c><d/></c>").Root
        +"</bigDoc>")

但您可能会遇到各种难以解决的名称空间问题。如下所述,为什么不编写代码来查询两个单据呢?

票数 1
EN

Stack Overflow用户

发布于 2010-09-14 21:23:46

最好的方法是根本不连接XML文件,除非您确实需要XML格式的数据。

无法按原样连接XML文件,因此必须解析这两个文件,连接数据,然后从中创建一个新的XML文件。我假设您只是在寻找数据,所以最后一步将是多余的。

例如,您可以使用LINQ to XML从XML文件中获取数据并将其连接起来。示例:

代码语言:javascript
复制
XElement contacts = XElement.Parse(contactsXml);
XElement clients = XElement.Parse(clientsXml);

var contactsWithClients =
  from contact in contacts.Elements("Contact")
  join client in clients.Elements("Client")
  on contact.Attribute("ClientId").Value equals client.Attribute("Id").Value
  into grp
  select new {
    ContactName = contact.Attribute("Name").Value,
    ClientName = grp.Single().Attribute("Name").Value
  };
票数 1
EN

Stack Overflow用户

发布于 2010-09-14 22:00:23

如果您调用的是web服务,请确保返回值解析为类定义,而不是普通的旧XML。在客户端代码端,定义一个容器类来容纳这两个类。然后,可以根据需要对容器类进行XML序列化/反序列化,生成的XML将得到正确的格式。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3709209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档