2013-02-01 9 views
-1

안녕하세요 XML 노드에서 오는 문자열이 있는데 문자열을 나눠서 한 문자열에서 값을 가져와 base64의 모든 블록을 가져와야합니다. 다른 파일을 해독하고 파일을 만들 수 있어야합니다.복잡한 문자열을 분할하여 파일 이름과 base64 문자열을 얻는 방법

스플릿 ("\ 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> 

답변

1

당신은 (SRC는 소스 문자열) 이동 : 이미하는 XMLNode이있는 경우

var split = src.Split('\n').Select(p => p.Trim()).ToList(); 

var filename = split.First(p => p.StartsWith("filename=")); 
filename = filename.Substring(10, filename.Length - 11); 

var base64 = split[split.Count - 2]; 
+0

덕분에 많은,하지만 하나의 오류지고있어이 라인 var에 파일 이름에 "메시지 = 시퀀스 것은 일치하는 요소를 포함하지"= split.First (P => p.StartsWith ("파일 이름 =")); 하지만 "파일 이름 ="존재합니다 .. – marinho

+0

그럼 제대로 분할하지 않습니다. 문자열 분리에서 얻을 수있는 값을 디버그에서 확인하십시오. 여기 내 코드는 다음과 같습니다. [pastebin] (http://pastebin.com/u3QBXwn9) – Artless

+0

특정 줄에 "filename = \"IERL4-12-61.pdf \ ""가 표시됩니다. – marinho

0

는, 그것을 사용할 수 있습니다. 요소를 구문 분석하십시오.

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

속성이 아니며 요소 내에 일반 텍스트입니다. – Artless

관련 문제