XML 컨텐트 인 문자열 모음이 있습니다. 내 컬렉션을 반복하고 사용자가 다운로드 할 수 있도록 스트림하기 위해 CSV 파일을 작성하려고합니다 (때로는 컬렉션에 수백 개가 될 수 있음). 이것은 내 루프입니다.C#에서 하나의 CSV 파일로 XML 파일을 변환하려면 어떻게해야합니까?
foreach (string response in items.Responses)
{
string xmlResponse = response;
//BUILD CSV HERE
}
이것은 내 반복 내용 (xmlResponse)에 대한 XML 내용입니다. "속성"속성을 포함하여 플랫 파일에 저장하려고합니다.
<?xml version="1.0"?>
<response>
<properties id="60375c90-9dd7-400f-aafb-a8726df409a9" name="Account Request" date="Thursday, March 04, 2010 2:14:07 PM" page="http://mydomain/sitefinity/CreateAccount.aspx" ip="192.168.1.255" browser="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.8) Gecko/20100202 Firefox/3.5.8" referrer="http://mydomain/sitefinity/CreateAccount.aspx" confirmation="True" subject="Email from website: Account Request Form" sender="[email protected]" recipients="[email protected], , " />
<fields>
<field>
<label>Personal Details</label>
<value>Personal Details</value>
</field>
<field>
<label>Name</label>
<value>Tim Wales</value>
</field>
<field>
<label>Email</label>
<value>[email protected]</value>
</field>
<field>
<label>Website</label>
<value></value>
</field>
<field>
<label>Password</label>
<value></value>
</field>
<field>
<label>Phone</label>
<value></value>
</field>
<field>
<label>Years in Business</label>
<value></value>
</field>
<field>
<label>Background</label>
<value>Background</value>
</field>
<field>
<label>Place of Birth</label>
<value>Earth</value>
</field>
<field>
<label>Date of Birth</label>
<value></value>
</field>
<field>
<label>Some Label</label>
<value>Some Label</value>
</field>
<field>
<label>Industry</label>
<value> Technology Other</value>
</field>
<field>
<label>Pets</label>
<value>Dog</value>
</field>
<field>
<label>Your View</label>
<value>Positive</value>
</field>
<field>
<label>Misc</label>
<value>Misc</value>
</field>
<field>
<label>Comments</label>
<value></value>
</field>
<field>
<label>Agree to Terms?</label>
<value>True</value>
</field>
</fields>
</response>
<?xml version="1.0"?>
<response>
<properties id="60375c90-9dd7-400f-aafb-a8726df409a9" Form="Account Request" Date="Tuesday, March 16, 2010 6:21:07 PM" Page="http://mydomain/sitefinity/Home.aspx" IP="fe80::1c0f57:9ee3%10" Browser="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729)" Referrer="http://mydomain/sitefinity/Home.aspx" Subject="Email from website: Account Request Form" Sender="[email protected]" Recipients="[email protected]" Confirmation="True" />
<fields>
<field>
<label>Personal Details</label>
<value>Personal Details</value>
</field>
<field>
<label>Name</label>
<value>erger</value>
</field>
<field>
<label>Email</label>
<value></value>
</field>
<field>
<label>Website</label>
<value></value>
</field>
<field>
<label>Password</label>
<value></value>
</field>
<field>
<label>Phone</label>
<value></value>
</field>
<field>
<label>Years in Business</label>
<value></value>
</field>
<field>
<label>Background</label>
<value>Background</value>
</field>
<field>
<label>Place of Birth</label>
<value>Earth</value>
</field>
<field>
<label>Date of Birth</label>
<value></value>
</field>
<field>
<label>Some Label</label>
<value>Some Label</value>
</field>
<field>
<label>Industry</label>
<value> Technology Service</value>
</field>
<field>
<label>Pets</label>
<value>Dog</value>
</field>
<field>
<label>Your View</label>
<value>Positive</value>
</field>
<field>
<label>Misc</label>
<value>Misc</value>
</field>
<field>
<label>Comments</label>
<value></value>
</field>
<field>
<label>Agree to Terms?</label>
<value>True</value>
</field>
</fields>
</response>
<?xml version="1.0"?>
<response>
<properties id="60375c90-9dd7-400f-aafb-a8726df409a9" Form="Account Request" Date="Tuesday, March 16, 2010 4:50:17 PM" Page="http://mydomain/sitefinity/Home.aspx" IP="fe80::1c0f:ee3%10" Browser="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.5.21022; .NET CLR 3.5.30729; .NET CLR 3.0.30729)" Referrer="http://mydomain/sitefinity/Home.aspx" Subject="Email from website: Account Request Form" Sender="[email protected]" Recipients="[email protected]" Confirmation="True" />
<fields>
<field>
<label>Personal Details</label>
<value>Personal Details</value>
</field>
<field>
<label>Name</label>
<value>esfs</value>
</field>
<field>
<label>Email</label>
<value></value>
</field>
<field>
<label>Website</label>
<value></value>
</field>
<field>
<label>Password</label>
<value></value>
</field>
<field>
<label>Phone</label>
<value></value>
</field>
<field>
<label>Years in Business</label>
<value></value>
</field>
<field>
<label>Background</label>
<value>Background</value>
</field>
<field>
<label>Place of Birth</label>
<value>Earth</value>
</field>
<field>
<label>Date of Birth</label>
<value></value>
</field>
<field>
<label>Some Label</label>
<value>Some Label</value>
</field>
<field>
<label>Industry</label>
<value> Technology Service</value>
</field>
<field>
<label>Pets</label>
<value>Dog</value>
</field>
<field>
<label>Your View</label>
<value>Positive</value>
</field>
<field>
<label>Misc</label>
<value>Misc</value>
</field>
<field>
<label>Comments</label>
<value></value>
</field>
<field>
<label>Agree to Terms?</label>
<value>True</value>
</field>
</fields>
</response>
아무도 도와 드릴 수 있습니까?
닷넷 2.0에서 XSLT를 구현하는 C# 코드와 링크입니다. XDocument와 같은 내장 CSV 객체가 있습니까? 그렇지 않으면 문자를 이스케이프 처리하고 수동으로 데이터를 분리해야합니다. 또한 큰 CSV 파일을 만드는 데 2,500 번 반복되는 경우 성능에 어떻게 접근합니까 (스트림이라고 생각합니까?)? – TruMan1
Linq에서 CSV를 살펴보십시오. http://www.codeproject.com/KB/linq/LINQtoCSV.aspx – mhanney