1
我有xml,其中包含用逗号分隔的值的属性。我知道这不是一个好主意,但现在坚持下去。使用具有多个值的属性选择元素
我喜欢使用XPath选择具有匹配属性值的元素。我希望比赛只考虑完整值,而不是部分比赛。 XPath可以做到这一点吗?
请参阅下面的C#代码。我使用.NET 4.0。
string xml = @"<Foos>
<Foo Tag=""AA, BB"" />
<Foo Tag=""BB"" />
<Foo Tag=""AAA, BBB"" />
</Foos>";
using (StringReader reader = new StringReader(xml))
{
XElement doc = XElement.Load(reader);
// I like to select elements with tag BB:
// <Foo Tag=""AA, BB"" />
// <Foo Tag=""BB"" />
var fooElementsWithTagBB = doc.XPathSelectElements("//Foo[@Tag = 'BB']"); // Selects only <Foo Tag=""BB"" />
fooElementsWithTagBB = doc.XPathSelectElements("//Foo[contains(@Tag, 'BB')]"); // Selects all elements
}
我想一般的查询,我知道
美孚[@Tag = 'AA,BB' 或@Tag = 'BB']
将在此工作例。
谢谢,真的很整洁的解决方案。 – 2013-02-25 03:11:02
@WallstreetProgrammer,不客气。 – 2013-02-25 05:14:59