我是正则表达式的新手,想为我的.net应用程序创建两个正则表达式。
我有一个存储xml的输入变量。下面是xml
<Row>
......
</Row>
<Row {optional}>
....
</Row>
<Row {optional} header="true" {optional}>
</Row>
我想要2个正则表达式: 1.正则表达式选择行标题=“真” 2.正则表达式选择没有header =“true”的行
正则表达式只需要考虑打开标签。例如:
答案 0 :(得分:0)
正则表达式不是在.NET中处理xml的最佳选择 如果您使用的是.NET 3.5或更高版本,请查看LINQ to xml 对于旧版本的运行时,请参阅XmlDocument and XPath
使用LINQ,您的代码将是这样的:
var document = XDocument.Load("path to your file"); // or XDocument.Parse if you have content in a string
var elementsWithHeaders = document.Descendants("Row").Where(x =>
x.Attribute("header")!=null && x.Attribute("header").Value == "true");
此代码不是最佳的,但是为了提高效率,我需要了解有关xml结构的更多假设
如果您使用的是C#6,您还可以使用null-conditional operator来简化上面的谓词
var elementsWithHeaders = document.Descendants("Row").Where(x =>
x.Attribute("header")?.Value == "true");