首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在xmloutput中添加根节点?

如何在xmloutput中添加根节点?
EN

Stack Overflow用户
提问于 2012-05-22 15:05:22
回答 1查看 393关注 0票数 1

大家好,我是mvc4新手,我正在使用asp.net MVC4创建RESTFUL风格的WebAPI。

我的api返回xml字符串,如下所示:

代码语言:javascript
复制
<ArrayOfFacilities xmlns:xsd="http://www.w3.org/2001/XMLSchema"    
                   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Facilities>...</Facilities>
<Facilities>...</Facilities>
</ArrayOfFacilities>    

我想在上面的节点之前添加一个描述分页的节点,如下所示

代码语言:javascript
复制
<wstxns1:pager>
<wstxns1:page>11</wstxns1:page>
<wstxns1:total>502</wstxns1:total>
<wstxns1:pageSize>50</wstxns1:pageSize>
<wstxns1:prevPage>http://apps.dhis2.org/dev/api/dataElements?page=10</wstxns1:prevPage>
<wstxns1:pageCount>11</wstxns1:pageCount>
</wstxns1:pager>

请帮帮忙,谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-22 17:33:57

代码语言:javascript
复制
    public class AppendPagerHandler : DelegatingHandler
    {
        protected override Task<HttpResponseMessage> SendAsync(
            HttpRequestMessage request, CancellationToken cancellationToken)
        {
            return base.SendAsync(request, cancellationToken).ContinueWith(
                (task) =>
                {
                    HttpResponseMessage response = task.Result;
                    var xml = response.Content.ReadAsStringAsync().Result;
                    var newContents = xml.Substring(0, xml.IndexOf("ma\">")+4)+
                            @"<pager>
                                <page>11</page>
                                <total>502</total>
                                <pageSize>50</pageSize>
                                <prevPage>http://apps.dhis2.org/dev/api/dataElements?page=10</prevPage>
                                <pageCount>11</pageCount>
                          </pager>" + xml.Substring(xml.IndexOf("ma\">") + 4);
                    response.Content = new StringContent(newContents);
                    response.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("text/xml");
                    return response;
                }
            );
        }
    }
        GlobalConfiguration.Configuration.MessageHandlers.Add(new Mvc4WebApi.Controllers.ValuesController.AppendPagerHandler());

    public List<Facilities> Get()
    {
        var list = new List<Facilities>();
        list.Add(new Facilities { Name = "A" });
        list.Add(new Facilities { Name = "B" });
        return list;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10697309

复制
相关文章

相似问题

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