Click here to Skip to main content
15,885,546 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
<pre lang="c#">
XML
<AnswerSet>
    <Answer name="es/21-9-c">
        <TextValue>420 Quincy St.</TextValue>
    </Answer>
    <Answer name="rptmc/programtype">
        <MCValue>
            <SelValue>VS</SelValue>
        </MCValue>
    </Answer>
    <Answer name="programtype">
        <MCValue>
            <SelValue>AS</SelValue>
            <SelValue>BS</SelValue>
            <SelValue>CS</SelValue>
            <SelValue>Ron</SelValue>
            <SelValue>Deepak</SelValue>
            <SelValue>Nelson</SelValue>
        </MCValue>
    </Answer>
</AnswerSet>

    public class AnswerFile
        {
        public string txt_DSCL_COLUMN_NAME { get; set; }
        public string int_DSCL_VARIABLE_TYPE_ID { get; set; }
        public DateTime dat_DSCL_CREATED_DATE { get; set; }
        public string txt_DSVL_VALUE { get; set; }
        } 


 string getXmlPath = @"C:\DA_Portal\ClientFiles\3977034278\DownloadedDataSets\10-16-12\Transformed\";
            System.Collections.Generic.List<fileinfo> _theFiles;
            _theFiles = Utility.GetFiles(getXmlPath, "xml");
           
            int totalFiles = _theFiles.Count;
            foreach (FileInfo AnswerFileInfo in _theFiles)
                {

                XDocument obAnsFile;
                string AnswerFileName = AnswerFileInfo.Name;
                obAnsFile = new XDocument();
                obAnsFile = XDocument.Load(AnswerFileInfo.FullName);

                 


                IEnumerable<answerfile> Answers = (from e in obAnsFile.Descendants("Answer")
                                                   select new AnswerFile
                                                   {
                                                       txt_DSCL_COLUMN_NAME = e.Attribute("name").Value,
                                                       txt_DSVL_VALUE = (string)e.Element("MCValue").Value.Insert(e.Element("MCValue").Value.Length, "|"),
                                                       dat_DSCL_CREATED_DATE = DateTime.Now,
                                                       int_DSCL_VARIABLE_TYPE_ID = e.FirstNode != null ? ((XElement)e.FirstNode).Name.LocalName : "hello",

                                                   }).ToList();

The Output I want is should be in this format

For this

<answer name="es/21-9-c">
        <textvalue>420 Quincy St.</textvalue>
</answer>

txt_DSCL_COLUMN_NAME ="es/21-9-c"
int_DSCL_VARIABLE_TYPE_ID ="TextValue"
dat_DSCL_CREATED_DATE="26/10/2012"
txt_DSVL_VALUE ="420 Quincy St."

--------------------------------------------

 <answer name="rptmc/programtype">
        <mcvalue>
            <selvalue>VS</selvalue>
        </mcvalue>
    </answer>

txt_DSCL_COLUMN_NAME  ="rptmc/programtype"
int_DSCL_VARIABLE_TYPE_ID ="MCValue"
dat_DSCL_CREATED_DATE="26/10/2012"
txt_DSVL_VALUE ="VS"

<answer name="programtype">
        <mcvalue>
            <selvalue>AS</selvalue>
            <selvalue>BS</selvalue>
            <selvalue>CS</selvalue>
            <selvalue>Ron</selvalue>
            <selvalue>Deepak</selvalue>
            <selvalue>Nelson</selvalue>
        </mcvalue>        
    </answer>   

txt_DSCL_COLUMN_NAME  ="programtype"
int_DSCL_VARIABLE_TYPE_ID ="MCValue"
dat_DSCL_CREATED_DATE="26/10/2012"
txt_DSVL_VALUE ="VS|BS|CS|Ron|Deepak|Nelson"

Kindly let me know if the things are not clear</answerfile></fileinfo>
Posted
Comments
fjdiewornncalwe 26-Oct-12 12:16pm    
Great. And what's your question?
nelsonmarian 29-Oct-12 1:34am    
Good Morning Marcus Kramer

Thanks for reply. My question how to get | when there are more child nodes and no | when there is no child node or only one child node.MY xml will also have TextValue ,NumValue,DateValue,TFValue,DocTextValue. They will not have child elements but MCValue , ClauseLibValue DBValue .But they will have atleast one child nodes. Will your solution will be faster.because I am having 10,000 files and each file contains around 1000 records.

<answerset>
<answer name="GA">
<textvalue>806584

<answer name="dstes/coreentrydate">
<datevalue>01/01/2010

<numvalue>806584

<answer name="dsttf/compmod415">
<TFValue>false</TFValue>

<answer name="rptmc/programtype">
<mcvalue>
<selvalue>VS


<answer name="programtype">
<mcvalue>
<selvalue>AS
<selvalue>BS
<selvalue>CS
<selvalue>Ron
<selvalue>Deepak
<selvalue>Nelson


<answerset>

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900