LINQ TO XML需要创建LIST [英] LINQ TO XML Need to create an 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屋!