使用正则表达式在XML中查找值

时间:2013-04-05 12:41:28

标签: xml regex

我有一个以下xml

<ns1:Header>
<ns4:Name>Mohan</ns4:Name>
<ns4:Age>10</ns4:Age>
<ns4:Dept>CSE</ns4:Dept>
</ns1:Header>

我需要写一个正则表达式来找到Mohan的名字 标签。这里命名空间(ns4)可能会动态更改。请帮助编写一个适用于所有命名空间的通用正则表达式

2 个答案:

答案 0 :(得分:2)

试试这个:

<ns\d+:Name>(.+)<

但你真的必须使用RegEx吗?有更好的方法,如.NET中的System.Xml.XmlDocument类

答案 1 :(得分:1)

binogure的解决方案似乎是正确的,我只会使名称空间更通用:

/<(\w+:Name)>(\w+)<\/\1>/

或者,如果名称空间是可选的:

/<((?:\w+)?Name)>(\w+)(\/\1>/

该名称将位于第二个捕获组中。