C# XMLParser跳到一组标记中的最后一个标记
我正在将XML文件读入数据表,如下所示:C# XMLParser跳到一组标记中的最后一个标记,c#,.net,xml,datatable,xml-parsing,C#,.net,Xml,Datatable,Xml Parsing,我正在将XML文件读入数据表,如下所示: DataTable dt = XMLParser.XMLRead.ReadeFormXMLFile(filePath, "my:myFields"); 但是,它并没有捕获所有字段 有多个PracticerLastName和PracticerFirstName和PracticerNPI: <my:group1> <my:group2> <my:PractitionerFirstName>Joe&l
DataTable dt = XMLParser.XMLRead.ReadeFormXMLFile(filePath, "my:myFields");
但是,它并没有捕获所有字段
有多个PracticerLastName和PracticerFirstName和PracticerNPI:
<my:group1>
<my:group2>
<my:PractitionerFirstName>Joe</my:PractitionerFirstName>
<my:PractitionerLastName>Limits</my:PractitionerLastName>
<my:PractitionerNPI>0987654321</my:PractitionerNPI>
<my:PractitionerDegree>MD</my:PractitionerDegree>
</my:group2>
<my:group2 xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-02-06T05:56:10">
<my:PractitionerFirstName>Him</my:PractitionerFirstName>
<my:PractitionerLastName>Haw</my:PractitionerLastName>
<my:PractitionerNPI>1234567890</my:PractitionerNPI>
<my:PractitionerDegree>PA</my:PractitionerDegree>
</my:group2>
<my:group2 xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-02-06T05:56:10">
<my:PractitionerFirstName>Mike</my:PractitionerFirstName>
<my:PractitionerLastName>Kim</my:PractitionerLastName>
<my:PractitionerNPI>1234567890</my:PractitionerNPI>
<my:PractitionerDegree>DO</my:PractitionerDegree>
</my:group2>
<my:group2 xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-02-06T05:56:10">
<my:PractitionerFirstName>Vanilla </my:PractitionerFirstName>
<my:PractitionerLastName>Ice</my:PractitionerLastName>
<my:PractitionerNPI>1231231231</my:PractitionerNPI>
<my:PractitionerDegree>MD</my:PractitionerDegree>
</my:group2>
<my:group2 xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2012-02-06T05:56:10">
<my:PractitionerFirstName>Kim</my:PractitionerFirstName>
<my:PractitionerLastName>John</my:PractitionerLastName>
<my:PractitionerNPI>1234567890</my:PractitionerNPI>
<my:PractitionerDegree>DO</my:PractitionerDegree>
</my:group2>
</my:group1>
问题:什么会导致XML解析器只从group2
抓取最后一条记录,而忽略其他所有内容?您可以尝试以下方法:
XElement root = XElement.Load(filePath);
var list = root.Elements().Select(x => new
{
FirstName = x.Get("PractitionerFirstName", string.Empty),
LastName = x.Get("PractitionerLastName", string.Empty),
NPI = x.Get("PractitionerNPI", string.Empty),
Degree = x.Get("PractitionerDegree", string.Empty)
}).ToArray();
这可以使用您提供的xml工作。我正在使用。您可以尝试以下方法:
XElement root = XElement.Load(filePath);
var list = root.Elements().Select(x => new
{
FirstName = x.Get("PractitionerFirstName", string.Empty),
LastName = x.Get("PractitionerLastName", string.Empty),
NPI = x.Get("PractitionerNPI", string.Empty),
Degree = x.Get("PractitionerDegree", string.Empty)
}).ToArray();
这可以使用您提供的xml工作。我正在使用。请解释否决票,我非常乐意更改/添加信息。我不知道您为什么会获得否决票。问题tho:是否忽略了具有自定义命名空间的字段?这可能与为什么(顺便说一句,我没有xmlparse经验)有关@payo非常感谢您的回复。我是XML新手,所以我不知道这意味着什么:)我读XML样本太快了。尝试将示例xml减少到一个最小的集合,在该集合中,错误会重新出现。然后,清楚地解释哪个字段被跳过或缺少。实际上不可能回答这个问题,因为XML是由
XMLParser.XMLRead.ReadeFormXMLFile
解析的,这是您或您的组织编写的方法。请解释下一票,我非常乐意更改/添加信息。我不知道您为什么会被下一票。问题tho:是否忽略了具有自定义命名空间的字段?这可能与为什么(顺便说一句,我没有xmlparse经验)有关@payo非常感谢您的回复。我是XML新手,所以我不知道这意味着什么:)我读XML样本太快了。尝试将示例xml减少到一个最小的集合,在该集合中,错误会重新出现。然后,清楚地解释跳过或缺少哪个字段。实际上不可能回答这个问题,因为XML是由您或您的组织编写的XMLParser.XMLRead.ReadeFormXMLFile
解析的。