LINQ TO XML需要创建LIST [英] LINQ TO XML Need to create an LIST

查看:44
本文介绍了LINQ TO XML需要创建LIST的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

< AnswerSet>&NBSP;&NBSP;&NBSP;

    <答案名称=" es / 21-9-c">

   &NBSP;&NBSP;&NBSP;  < TextValue> 420 Quincy St.< / TextValue>

    < / Answer>

    <答案名称=" rptmc / programtype">

   &NBSP;&NBSP;&NBSP;  < MCValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> VS< / SelValue>

   &NBSP;&NBSP;&NBSP;  < / MCValue>

    < / Answer>

    <答案名称="程序类型">

   &NBSP;&NBSP;&NBSP;  < MCValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> AS< / SelValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> BS< / SelValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> CS< / SelValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> Ron< / SelValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> Deepak< / SelValue>

   &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP;  < SelValue> Nelson< / SelValue>

   &NBSP;&NBSP;&NBSP; &NBSP;< / MCValue>&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;


   &NBSP;< /应答和GT;&NBSP;&NBSP;&NBSP;

< / AnswerSet>

<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; }  
        }


字符串getXmlPath = @" C:\ DA_Portal \ClientFiles \ 3977034278 \DownloadedDataSets \ 10-16-12\Transformed• \\英寸;
System.Collections.Generic.List< FileInfo> _文件;
_theFiles = Utility.GetFiles(getXmlPath," xml");

int totalFiles = _theFiles.Count;
foreach(_theFiles中的FileInfo AnswerFileInfo)
{

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

string n;


IEnumerable< AnswerFile>答案=(来自e in obAnsFile.Descendants(" Answer")
选择新的AnswerFile
{
txt_DSCL_COLUMN_NAME = e.Attribute(" name")。Value,
txt_DSVL_VALUE = e.Value,
dat_DSCL_CREATED_DATE = DateTime.Now,
int_DSCL_VARIABLE_TYPE_ID = e.FirstNode!= null?((XElement)e.FirstNode).Name.LocalName:" hello",

})。ToList();

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); string n; IEnumerable<AnswerFile> Answers = (from e in obAnsFile.Descendants("Answer") select new AnswerFile { txt_DSCL_COLUMN_NAME = e.Attribute("name").Value, txt_DSVL_VALUE = e.Value, 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

<答案名称=" es / 21-9-c">   &NBSP;&NBSP;&NBSP;  < TextValue> 420 Quincy St.< / TextValue>
< / Answer>

<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."

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."

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

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

 <答案名称= " rptmc / PROGRAMTYPE">
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< MCValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue> VS< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< / MCValue>
&NBSP;&NBSP;  < / Answer>

 <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"

<答案名称="程序类型">
   &NBSP;&NBSP;&NBSP; &NBSP;< MCValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue>作为< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue> BS< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue> CS< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue>罗恩< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue>迪帕克< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< SelValue>纳尔逊< / SelValue>
&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;< / MCValue>&NBSP;&NBSP; &NBSP;&NBSP;&NBSP; &NBSP;
&NBSP;&NBSP; &NBSP;< /应答和GT;&NBSP;&NBSP;&NBSP;

<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

推荐答案

使用作业

Use the assignment

                IEnumerable<AnswerFile> Answers = (from e in obAnsFile.Descendants("Answer")
let tv = e.Element("TextValue")
                                                   select new AnswerFile
                                                   {
                                                       txt_DSCL_COLUMN_NAME = e.Attribute("name").Value,
                                                       txt_DSVL_VALUE = tv != null ? tv.Value : string.Join("|", e.Element("MCValue").Elements("SelValue").Select(v => v.Value)),
                                                       dat_DSCL_CREATED_DATE = DateTime.Now,
                                                       int_DSCL_VARIABLE_TYPE_ID = e.FirstNode != null ? ((XElement)e.FirstNode).Name.LocalName : "hello",

                                                   });




 


 


这篇关于LINQ TO XML需要创建LIST的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆