【问题标题】:WCF SOAP XML parent tag removeWCF SOAP XML 父标记删除
【发布时间】:2017-07-28 14:31:35
【问题描述】:

我有一个问题,我必须删除封闭标签,我的操作合同是:

public List<MessageStatus> sendMessages(List<MessageTO> messages)

在 SOAPUI 输出中添加后形成的 XML 如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sms="https://sms.responsetek.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <sms:sendMessages>
         <!--Optional:-->
         <sms:messages>
            <!--Zero or more repetitions:-->
            <message>
               <mid>?</mid>
               <oa>?</oa>
               <da>?</da>
               <text>?</text>
               <!--Optional:-->
               <exp>?</exp>
            </message>
         </sms:messages>
      </sms:sendMessages>
   </soapenv:Body>
</soapenv:Envelope>

我想从中删除&lt;sms:messages&gt; 标签。

【问题讨论】:

    标签: c# xml wcf soap


    【解决方案1】:

    尝试以下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml;
    using System.Xml.Linq;
    
    namespace ConsoleApplication69
    {
        class Program
        {
            const string FILENAME = @"c:\temp\test.xml";
            static void Main(string[] args)
            {
                XDocument doc = XDocument.Load(FILENAME);
    
                XElement messages = doc.Descendants().Where(x => x.Name.LocalName == "messages").FirstOrDefault();
    
                messages.Remove();
            }
        }
    }
    

    【讨论】:

    • 我不明白这个。我们没有任何 xml。 XML 实际上是 wsdl,它是在我们尝试调用 sendMessages 操作时自动生成的。我们想在没有 标签的情况下生成它
    • 我不知道是从 SOAPUI 中删除它更容易,还是从输出中删除它更容易。您可以使用 XDocument.Parse(string) 并将其从字符串而不是文件中删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2014-12-31
    • 1970-01-01
    相关资源
    最近更新 更多