1
msg 파일의 본문을 읽고 xml 파일로 변환해야합니다. msg 파일을 xml 파일로 변환하기 위해 아래 코드를 사용했습니다. xml 파일을 가져올 수 있지만 출력 xml 파일에 빈 줄이 표시되는 문제가 있습니다. RegEx을 사용하여 문자열에서 빈 줄을 제거했습니다. 디버깅하는 동안 빈 줄이 문자열에서 삭제 된 것을 볼 수 있습니다. 하지만 XML 파일로 그 문자열을로드 한 후 xml 파일에 빈 줄을 가져 오는 중입니다. 견본 xml 파일의 이미지를 첨부했습니다. .msg 파일의xml 문서의 빈 줄 제거
string[] filePaths = Directory.GetFiles(@"C:\Projects\Userdata\Source Folder\", "*.msg");
for (int i = 0; i < filePaths.Length; ++i)
{
string path = filePaths[i];
string fname = System.IO.Path.GetFileName(path);
_Application outlook = new ApplicationClass();
MailItem item = (MailItem)outlook.CreateItemFromTemplate(path, Type.Missing);
string b = item.Body;
string formatbody = System.Text.RegularExpressions.Regex.Replace(b, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
XDocument doc1 = XDocument.Parse(formatbody,LoadOptions.PreserveWhitespace);
var xs = doc1.Elements();
string test = string.Empty;
foreach (var x in xs)
{
test += x.ToString();
}
XmlDocument doc = new XmlDocument();
doc.LoadXml(test);
doc.Save(@"C:\Projects\Destination Folder\" + fname + ".xml");
}
몸은 공백을 제거하는 정규식을 사용하지 않아도이
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="gateway_transaction_display.xsl"?>
<File>
<File_Type>AP PAYMENTS</File_Type>
<File_Header_Record>
<File_Format_Version>0002</File_Format_Version>
<Creation_Module>0286-14</Creation_Module>
</File_Header_Record>
<Transaction>
<Transaction_Type>FT_TRANS_IMP</Transaction_Type>
<Transaction_Header>
<Record_Number>1</Record_Number>
<Urgent>Y</Urgent>
</Transaction_Header>
<Model_Info>
<Model_ID><![CDATA[FF DOM INT PAY]]></Model_ID>
</Model_Info>
<Transfer_Info>
<Charges>15</Charges>
</Transfer_Info>
<Amounts>
<Transaction_Amount>
<Amount>4665786.22</Amount>
<Currency>CAD</Currency>
</Transaction_Amount>
</Amounts>
<Dates>
<Trusted_Source>Y</Trusted_Source>
<Value_Date>2014-03-31</Value_Date>
</Dates>
<Bank_Account>
<Bank_Account_Type>DR</Bank_Account_Type>
<Bank>
<Bank_Route_Code>
<Code_Type>Y</Code_Type>
</Bank_Route_Code>
</Bank>
<Account>
<Account_ID>FF01</Account_ID>
</Account>
</Bank_Account>
<Bank_Account>
<Bank_Account_Type>CR</Bank_Account_Type>
<Bank>
<Bank_Route_Code>
<Code_Type>Y</Code_Type>
</Bank_Route_Code>
</Bank>
<Account>
<Account_ID>D039</Account_ID>
</Account>
</Bank_Account>
<Payment_Details_Or_Addenda>
<Details_Text><![CDATA[Unapplied
cash & intercompany settlemet]]></Details_Text>
</Payment_Details_Or_Addenda>
</Transaction>
<File_Trailer_Record>
<File_Name>AP PAYMENTS</File_Name>
</File_Trailer_Record>
</File>
메시지 파일을 표시 할 수 있습니까? 루트 요소의 네임 스페이스 문제 일 수 있다고 생각했습니다. –
<= "1.0"인코딩 = 'ISO-8859-1'? XML 버전?> XML-스타일 타입 = "텍스트/XSL"HREF = "gateway_transaction_display.xsl"?> AP의 PAYMENTS 0002 File_Format_Version> 0286-14 Creation_Module> File_Header_Record> 이 나는 처리하려는 파일이다. 전체 XML 파일과 msg 파일 –
user3859666