簡體   English   中英

從 MIME 多部分文件中提取 XML object

[英]Extracting XML object from MIME Multipart file

因此,我在這里嘗試使用文件中的數據,據我了解(在閱讀了一點之后)似乎是多部分 soap 請求(使用 xml ZA8CFDE6331BD49EB62AC96F891 作為附件?)。 所以我被賦予了使用 xml 文件的任務,這些文件看起來像這樣:

--MIME264440613829.7322990959788848043325807015

<SOAP-ENV:Envelope>
  <SOAP-ENV:Header>
    ...
  </SOAP-ENV:Header>
  <SOAP-ENV:Body>
    <eb:Manifest eb:version="2.0">
      <eb:Reference xlink:href="cid:payload-1" xlink:role="aop:ROOT"/>
    </eb:Manifest>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

--MIME264440613829.7322990959788848043325807015
Content-ID: payload-1

<?xml version="1.0" encoding="UTF-8"?>
<aop:ROOT>
...
</aop:ROOT>
--MIME264440613829.7322990959788848043325807015--

我需要做的是從多部分 object 中提取 XML 似乎是第二部分(或我認為人們稱之為附件)。

我的第一個想法是使用一些字符串操作,例如正則表達式來提取 xml object,但肯定有更好的方法。 另外,我目前只是在 c# 項目中對此進行測試。

好的,所以在聯系了我的一位同事后,我們設法找到了解決方案:

這就是我們所做的

使用 HttpMultiPartParser 我們可以通過以下代碼從文件中提取 xml 內容:

using HttpMultipartParser;      

        using (var streamReader = new StreamReader(@"multipartFile.xml"))
        {
            var temp = MultipartFormDataParser.Parse(streamReader.BaseStream);
            foreach (var filepart in temp.Files)
            {
                using (var fpSr = new StreamReader(filepart.Data))
                {
                    var name = filepart.Name;
                    var contentType = filepart.ContentType;
                    var content = fpSr.ReadToEnd();
                }
            }
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM