C# 如何拆分复杂字符串以获取文件名和base64字符串

C# 如何拆分复杂字符串以获取文件名和base64字符串,c#,base64,C#,Base64,您好,我有一个来自XML节点的字符串,我需要拆分该字符串并在一个字符串中获取“filename=”值,在另一个字符串中获取based64的所有块,以便能够对其进行解码并创建文件 我正在使用拆分(“\n”),但正在为每一行创建一行,这不是我需要的。有什么想法吗 <Attachment> --boundaryfIudow== Content-Type: application/octet-stream; name="IERL4-12-61.pdf"

您好,我有一个来自XML节点的字符串,我需要拆分该字符串并在一个字符串中获取“filename=”值,在另一个字符串中获取based64的所有块,以便能够对其进行解码并创建文件

我正在使用拆分(“\n”),但正在为每一行创建一行,这不是我需要的。有什么想法吗

<Attachment>
      --boundaryfIudow==
      Content-Type: application/octet-stream;   name="IERL4-12-61.pdf"
      Content-Disposition: attachment; name="IERL4-12-61.pdf";
      filename="IERL4-12-61.pdf"
      Content-Transfer-Encoding: base64

      JVBERi0xLjUNJeLjz9MNCjI4MzQgMCBvYmoNPDwvTGluZWFyaXplZCAxL0wgMTAxNTkyOS9PIDI4
      MzcvRSAxMDIyOTMvTiA0Mi9UIDEwMTUxMjkvSCBbIDU4MiA1MDZdPj4NZW5kb2JqDSAgICAgICAg
      DQoyODU1IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA1L1ByZWRpY3RvciAxMj4+L0Zp
      bHRlci9GbGF0ZURlY29kZS9JRFs8QTlCNjc4ODAwODkwODg0QjgyQURCRDk5N0U4OERERTY+PERD
      RDYyNDA0OTNDQUUyNDE5MjkwNzc4OEMyMUE1MEEyPl0vSW5kZXhbMjgzNCA3MF0vSW5mbyAyODMz
      IDAgUi9MZW5ndGggMTEwL1ByZXYgMTAxNTEzMC9Sb290IDI4MzUgMCBSL1NpemUgMjkwNC9UeXBl
      L1hSZWYvV1sxIDMgMV0+PnN0cmVhbQ0KaN5iYmRgEGBgYmBgMQCRDLtBJKMZmNwCIll3gkhmQbAI
      WA3LOjAJES8Gs0+ASUkQyTQJzJYDy64AkYaNQJKR6xGIrSIDNucVmBQFkv9LWBiYGBm4F4FtZ2Ac
      LKTAy0Hhkv8M3xVeAQQYAET0ENYNCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQowDQolJUVP
      Rg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
      ICAgICAgICAgIA0KMjkwMyAwIG9iag08PC9DIDUzNS9GaWx0ZXIvRmxhdGVEZWNvZGUvSSA1NTcv
      TGVuZ3RoIDQxMC9PIDUxOS9TIDQzMz4+c3RyZWFtDQpo3mJgYGBiYGA2Z2BhYODLYRBkQABBBmYG
      VqA4xwcGBgETZ0MGBgUk2b1/mCIbzigELuC7wX2DxYbVfvNGh0NSr/TEfzImhL4R/iPyiZG1tfvQ
      LkU/h2iOoBKmByJ7WNNZ9RlzHCccSN6QeENrmoAnZ0CbGVOdY6HClA43HgU3wZtMx4Am79RUzt0e
      mxd2txRI7o7dAhRid/aWkmV3vBQly9soN0PWxaqjVOCVFU+JxAujni8S7UE9h1e0B/ItdngVOAMo
      oXjFeaVbIpQASaz2Zg/jW50FJNbIJl2/kLvg0XW+jdntYSAicquJzK0GxowG1owGBgbRBrYGwQYO
      Bihi7mBoYOoAMTsYJCBiHkAcgWCCcAMrUAlLB4MGmM8CUkq70AGCDAZu+UJwBDEwSINFXgHZqQyf
      D7g8YEkQU+C2YRViusc4vUGLIa1B+2HNHuUHbilAVaKrlzZIBkxmrPRg+BlyXyiIIYCBv+HAA4ih
      3GoMjF1lQAYjMDmoAukiBr4rRhAbpqXDo72fgb8qF6KK4TNAgAEAW6qi8w0KZW5kc3RyZWFtDWVu
      ZG9iag0yODM1IDAgb2JqDTw8L0xhbmcoZW4tVVMpL01hcmtJbmZvPDwvTWFya2VkIHRydWU+Pi9N
      ZXRhZGF0YSAxNDEgMCBSL09wZW5BY3Rpb24gMjgzNiAwIFIvT3V0bGluZXMgMjg4MCAwIFIvUGFn
      --boundaryfIudow==--
    </Attachment>

--边界流==
内容类型:应用程序/八位字节流;name=“IERL4-12-61.pdf”
内容处置:附件;name=“IERL4-12-61.pdf”;
filename=“IERL4-12-61.pdf”
内容传输编码:base64
JVBERi0xLjUNJeLjz9MNCjI4MzQgMCBvYmoNPDwvTGluZWFyaXplZCAxL0wgMTAxNTkyOS9PIDI4
MZCVRSAMDIOTMVTIA0Mi9UIDEWMTUXMJKVSCBBIDU4MIAMADZDPJ4NZW5KB2JQDSAGAGICAG
DQoyODU1IDAgb2JqDTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA1L1ByZWRpY3RvciAxMj4+L0Zp
bHRlci9GbGF0ZURlY29kZS9JRFs8QTlCNjc4ODAwODkwODg0QjgyQURCRDk5N0U4OERERTY+PERD
RDYYNDA0OTNDQUUYNDE5MJKWNZC4OEMYMUE1MEEYPL0VSW5KZXHBMJGZNCA3MF0VSW5MBYODMZ
IDAGUI9MZW5NDGGGMTEWL1BYZYGMTAXNTEZMC9SB290IDI4MZUGMCBSL1NPEMUGMJKWNC9UEXBL
L1HSZWYVV1XIDMGMV0+PNN0CMVHBQ0KAN5IYMRGEGBGYMBMQCRDLTBJKMZMNWCILL3GKHMQBAI
WA3LOjAJES8Gs0+ASUKQYTQJZYDY64AkyanQJKR6XGIRSIDNUCVMBQFKV9LWBIYGBM4F4FTZ2AC
LKTAy0Hhkv8M3xVeAQQYAET0ENYNCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQowDQolJUVP
Rg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAGICAGICAGIA0KMKWMYAWIG9IAG08PC9DIDUZNS9GAWX0ZXIVRMXHDGVEZWNVZGUVSSA1NTCV
TGVuZ3RoIDQxMC9PIDUxOS9TIDQzMz4+C3RYZWFTdQPO3MJGYGBiYGA2Z2HYODLYRBKQABBMYG
VQA4xWCGBGET0MGBGUK2B1/MCIBZIGLUC7WX2DXYBVVNGH0NSR/TEfzImhL4R/iPyiZG1tfvQ
LkU/H2IOBKMBYJ7WNZ9RLZHCCCSN6QEENMOANZ0CBGVY6HCLA43HGU3WZTMX4AM79RUZT0E
mxd2txRI7o7dAhRid/AWKMV3VBQLY9SON0PWXAQJVFU+JxAujni8S7UE9h1e0B/ItdngVOAMo
oXjFeaVbIpQASaz2Zg/jW50FJNbIJl2/kLvg0XW+JDNtySAICQUJZK0GXOWG1OWGBBRYGWQYO
BIHI7MBOYOOAMTSYJCBIHKACGWCCCAMRULB4MGMM8CUKQ70AGCDAZU+UJWBDEWSINFXGHZQYF
D7g8YEkQU+C2YRVIUC4VUGLIA1B+2HNHUHBILAVAKRZIBKXMRPRG+BLYXYIIYCBV+HAA4ih
3GOMJF1LQAYJMDMOAUKIBR4RhaBPQXDO72FGB8QF6KKK4NAGAEAW6QI8W0KZW5K3C3RYZWFTDWWWWU
ZG9IAG0YODM1IDAGB2JQDTW8L0xHBMCOZW4TVMPL01HCMTJBMZVPDWVTWFYA2VKIHRYDWU+Pi9N
ZXRHZGF0YSAXNDEGCBSL09WZW5BY3RPB24GMJGZNIAWIFIVT3V0BGLUZXMGMJG4MCAWIFIVUN
--边界流==--
给你(src是你的源字符串):


如果您已经拥有XMLNode,请使用它。 将其解析为一个元素

XmlElement attachment = (XmlElement)node; 
var filename = attachment.GetAttribute("filename").FirstOrDefault();

非常感谢,但我在这一行var filename=split.First(p=>p.StartsWith(“filename=”))中收到一个错误“Message=Sequence不包含匹配元素”;但是“filename=”exist..则无法正确分割。请参见“调试”中的“拆分字符串得到的值”。这是我的代码:我在特定的行中得到了这个“filename=\”IERL4-12-61.pdf\”,所以这里有一些空白字符。没什么大不了的,你只需要在做任何事情之前修剪分割的条目。我更新了我的答案。请注意,
.Length
已更改为
.Count
。谢谢,我现在正在学习。。。我没有弄错名字。。但我现在得到的是所有base64块代码,只有第一行..它不是属性,而是元素中的纯文本。
XmlElement attachment = (XmlElement)node; 
var filename = attachment.GetAttribute("filename").FirstOrDefault();