我在XML文件中有一些项目。例如。多个项目,如同一个文件中的下面的项目。我想搜索FluidTypes与特定字符串匹配的所有项目条目。在同一个名称的多个标签上的C#XML Linq
<?xml version="1.0" encoding="utf-8"?>
<data>
<Project ID="P-2014-000037">
<Name>FDP001_Bakken</Name>
<Manager>shell</Manager>
<Area>NAM</Area>
<Field>Bakken</Field>
<Type>Time and Material External</Type>
<Country>USA</Country>
<Value>3.5</Value>
<Geomarket>NAM</Geomarket>
<FormationTypes>Carbonate</FormationTypes>
<FormationTypes>Coal</FormationTypes>
<FormationTypes>Fractures</FormationTypes>
<FormationTypes>Sandstone</FormationTypes>
<FluidTypes>Gas Cond</FluidTypes>
<FluidTypes>Heavy Oil</FluidTypes>
<DriveMechanisms>Compaction</DriveMechanisms>
<DriveMechanisms>Aquifer</DriveMechanisms>
<EORProcesses>CO2</EORProcesses>
<EORProcesses>CSS</EORProcesses>
</Project>
</data>
我使用的follwing代码来搜索Geomarket的相符:
IEnumerable<XElement> values1 = from el1 in root.Elements("Project").
Where(r => regEx1.IsMatch(r.Element("Geomarket").Value))
select el1;
当我使用相同于流体类型(其具有多个元素):
IEnumerable<XElement> values1 = from el1 in root.Elements("Project").
Where(r => regEx1.IsMatch(r.Element("FluidTypes").Value))
select el1;
它仅检查与名为Fluid Types的第一个元素匹配,而不是所有流体类型元素。因此只有Gas Cond符合这个项目,但重油不符合。
如何在所有Fluid类型的搜索中进行查询?
为什么你不适合这样的:IEnumerable的值1 = root.Elements( “项目”)的元素( “FluidTypes”); –
2015-04-02 19:43:56
'我想搜索FluidTypes与特定字符串匹配的所有项目条目?例如? – EZI 2015-04-02 19:47:15
例如:搜索流体类型=“重油”的所有项目 'Regex regEx1 = new Regex(“Heavy Oil”,RegexOptions.IgnoreCase);' – 2015-04-02 19:49:27