尝试使用LINQ XML将以下XML文件(可以更改)读入对象.
<?xml version='1.0'?>
<config>
<report>
<name>Adjustment Report</name>
<extension>pdf</extension>
<filetype>adobe_pdf</Filetype>
<field name="total" type="currency" />
<field name="adjust" type="currency" />
<field name="monthly" type="currency" />
<output>
<format>Excel</format>
<AutoFormat>True</AutoFormat>
</output>
<reportstart>adjustment report</reportstart>
<reportend></reportend>
<linebegins>
<regex>(?<ssn>\d{3}-\d{2}-\d{4})</Regex>
</linebegins>
<regex>"(?<last>\s{0,1}[A-Z-'.]+\s{0,1}[A-Z-'.]+),(?<first>\s[A-Z-'.]+\s{0,1})(?<middle>[A-Z][.]|\s{0,1})"></Regex>
<regex>"(?<ssn>\d{3}-\d{2}-\d{4})"</Regex>
<regex>"(?<total>\$[,/d]+)(?<adjust>\$[,/d]+)(?<monthly>\$[,/d]+)"</Regex>
</report>
</config>
Run Code Online (Sandbox Code Playgroud)
什么是无效的是将多个元素读入对象.我只能读第一个.显然,持有该字段的Object需要是一个数组?这是我到目前为止的代码.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ElementDemo
{
class Program
{
static void Main(string[] args)
{
XElement xml = XElement.Load("C:\\TEMP\\test.xml");
var reports = from report in xml.Descendants("report")
where report.Element("name").Value.Contains("Adjustment Report")
select new
{
Name = …Run Code Online (Sandbox Code Playgroud)