我需要在xml节点中找到所有字符串实例。更具体地说,我想解析一些XAML并将所有字符串放在某些控件中(标签为一个)并将它们设置为属性。所以,而不是这个
<Label>My string</Label>
我想要这个:
<Label Content="My string"></Label>
我提出的正则表达式是“&gt; \ s * [^&lt;]”。我将此读作匹配的字符串,其中包含大于符号,后跟任意数量的空格,后跟除了小于符号之外的任何字符。但是,我没有得到我的期望。例如,以下是其中一个匹配项:
>\\r\\n\\t\\r\\n <UserControl..."
有什么想法吗?
答案 0 :(得分:2)
这里已经说了一千次:不要试图用正则表达式“解析”XML。这里使用的正确工具是xml处理器。
通过这样,很容易 - 而且更重要的是,没有错误 - 选择内部的所有<Label>
元素和文本节点(My string
),并从中生成新的XML节点(<Label Content="My string"></Label>
)。实施留给读者练习:)
答案 1 :(得分:1)
您可以搜索
<(Label|OtherTag|YetAnotherTag)>(\s*[^<]*)</\1>
并将其替换为
<\1 Content="\2"></\1>
甚至
<\1 Content="\2"/>
如果您完全确定在您正在查看的那些标签中没有任何嵌套标签,除了正则表达式之外别无他法。