2011年8月7日 星期日

C# 正則運算式取出指定子節點範例




C# 字串處理 HTML XML 時,正則運算式就是很好用的工具。







string str2 = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>"
+ "<Table1>"
+ " <Code>aaa</Code>\n"
+ " <Desc>111</Desc>"
+ "</Table1>"
+ "<Table1>"
+ " <code>bbb</Code>\n"
+ " <Desc>222</Desc>"
+ "</Table1>"
+ "<Table1>"
+ " <Code>ccc</Code>\n"
+ " <Desc>333</Desc>"
+ "</Table1>";

/* 如果能確保節點之間與Tag不會有空白, 以下四行可省略
去掉節點之間的空白*/
Regex.Replace(str2, @">\s*?</", "><");
/* 去掉開頭與結尾Tag之間的空白 */
Regex.Replace(str2, @"\s*<\s*", "<");
Regex.Replace(str2, @"\/\s*", "/");
Regex.Replace(str2, @"\s*>", ">");

MessageBox.Show(Regex.Replace(str2, @"\s*<(?!Code>|\/Code>)(.*?(?=<Code>)|.*>)", "", RegexOptions.IgnoreCase));

沒有留言:

張貼留言