C# 解析<;答:文件内容>;XML响应中的参数

C# 解析<;答:文件内容>;XML响应中的参数,c#,.net,xml,C#,.net,Xml,我有一个返回响应的web服务,我似乎找不到关于如何使用php或c解析a:FileContent参数的好答案# 答复如下: <GetReturnFileResponse xmlns="http://tempuri.org/"> <GetReturnFileResult xmlns:a="http://schemas.datacontract.org/2004/07/SigmaAPIService" xmlns:i="http://www.w3.org/2001/XMLSchema

我有一个返回响应的web服务,我似乎找不到关于如何使用php或c解析a:FileContent参数的好答案#

答复如下:

<GetReturnFileResponse xmlns="http://tempuri.org/">
<GetReturnFileResult xmlns:a="http://schemas.datacontract.org/2004/07/SigmaAPIService" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <a:FileContent>/*Byte[] data type long string looks like 'IkRWTEoxMDI2LkVGQiIsIkVGVCIsIjgxOCIsIlZBTlNQRVlCUk9FQ0siLCIxMC8yNi8xNSIsIjA3Mzk3MjE4MSIsIjcwMDA3ODc5MDY5MDUwJSMDEiLCIxMC8yOC8xNSIsIlBCIiLCIiDQo=' here. **removed some chars just a sample*/</a:FileContent>
    <a:Response>
        <a:ResponseCode>1</a:ResponseCode>
        <a:ResponseMessage>Successfully processed</a:ResponseMessage>
        <a:ResponseType>Success</a:ResponseType>
    </a:Response>
</GetReturnFileResult>

/*Byte[]数据类型长字符串在此处类似于“IkrwteoxMDI2LkVGQIISIkVgVcisiJGxOcisiLzBTLnQRVLCUK9FQ0SILCIXMC8YNI8XNSISIJA3MZK3MJE4MSISIJCWMDA3ODC5MDY5MDUWJSMDEILCIC8YOC8YOC8NSISILBCIILCIdQO=”**除去了一些炭只是一个样品*/
1.
成功处理
成功

轻松使用xml Linq

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string xml =
                "<?xml version=\"1.0\" encoding=\"utf-8\" ?>" +
                "<GetReturnFileResponse xmlns=\"http://tempuri.org/\">" +
                  "<GetReturnFileResult xmlns:a=\"http://schemas.datacontract.org/2004/07/SigmaAPIService\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">" +
                    "<a:FileContent>/*Byte[] data type long string looks like 'IkRWTEoxMDI2LkVGQiIsIkVGVCIsIjgxOCIsIlZBTlNQRVlCUk9FQ0siLCIxMC8yNi8xNSIsIjA3Mzk3MjE4MSIsIjcwMDA3ODc5MDY5MDUwJSMDEiLCIxMC8yOC8xNSIsIlBCIiLCIiDQo=' here. **removed some chars just a sample*/</a:FileContent>" +
                    "<a:Response>" +
                      "<a:ResponseCode>1</a:ResponseCode>" +
                      "<a:ResponseMessage>Successfully processed</a:ResponseMessage>" +
                      "<a:ResponseType>Success</a:ResponseType>" +
                    "</a:Response>" +
                  "</GetReturnFileResult>" +
                "</GetReturnFileResponse>";
            XDocument doc = XDocument.Parse(xml);

            XElement fileContent = doc.Descendants().Where(x => x.Name.LocalName == "FileContent").FirstOrDefault();
            XNamespace ns_a = fileContent.Name.Namespace;
        }
    }
}
​
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用系统文本;
使用System.Xml;
使用System.Xml.Linq;
命名空间控制台应用程序1
{
班级计划
{
静态void Main(字符串[]参数)
{
字符串xml=
"" +
"" +
"" +
“/*Byte[]数据类型长字符串看起来像‘IkrwteoxMDI2LkVGQIISIkVgCrisijGxOccililZBTLnQRVLCUK9FQ0SILCIXMC8YNI8XSISIJA3MZK3MJE4MSISIJCWMDA3ODC5MDY5MDUWJSMDEILCIC8YOC8XSISILBCIdQO=’这里。**删除了一些字符只是一个示例*”+
"" +
"1" +
“已成功处理”+
“成功”+
"" +
"" +
"";
XDocument doc=XDocument.Parse(xml);
XElement fileContent=doc.subjects()。其中(x=>x.Name.LocalName==“fileContent”).FirstOrDefault();
XNamespace ns_a=fileContent.Name.Namespace;
}
}
}
​

“url here”值是实际的名称空间,它们很重要。为名称空间注册别名并在Xpath中使用它们。此外,最好将问题限制在一个环境中,并展示您的尝试。谢谢您,我添加了URL,我的尝试仅限于
byte[]byteArray=“IkRWTEoxMDI2LkVGQiIsIkVGVCIsIjgxOCIsIlZBTlNQRVlCUk9FQ0siLCIxMC8yNi8=”;string bytetest=System.Text.Encoding.UTF8.GetString(byteArray)到目前为止,我还没有找到一个好的起点,但是如何从中输出文件的内容呢?我尝试了
Console.WriteLine(fileContent);Console.ReadLine()只是为了了解我正在使用的内容,但实际上无法将字节[]转换为有用的输出。数据要么加密,要么像zip文件一样打包。请参阅以下网页:谢谢,这正是我需要一个资源来了解发生了什么。你可能想使用类似fiddler或wireshark的嗅探器来查看url数据。他们将自动解压数据以确认数据是否为zip。Fiddler中的文本向导工作得像做梦一样。所有这些结合起来,我从响应中得到了所需的答案。谢谢