【发布时间】:2012-08-21 06:46:02
【问题描述】:
我想知道,有没有标准的方法来解析这种类似路径的字符串:
Server[@Name='MyServerName']/Database[@Name='MyDatabaseName']/Table[@Name='MyTableName' and @Schema='MySchemaName']
结果必须是:
- 项目名称(服务器)
- PropertyName(名称)、PropertyValue(MyServerName)
- 项目名称(数据库)
- PropertyName(名称)、PropertyValue(MyDatabaseName)
- 项目名称(表)
- PropertyName(名称)、PropertyValue(MyTableName)
- PropertyName(架构)、PropertyValue (MySchemaName)
这里最明显的是创建一个正则表达式(当然还有String.Split),但可能有更好的标准方法吗?
信息:字符串来自 SMO 的Urn.Value。
更新。
答案找到了,见下文。
【问题讨论】:
-
解析自定义字符串的标准方法? :)
-
这看起来像XPath。您可能想查看 .NET 框架的 respective classes。除此之外,您必须提供自定义代码才能执行此操作,或者查看具有 xpath grammar 的 ANTLR(从未查看过它,YMMV)。
-
如果你有办法解析这个 ->
PropertyName (Schema), PropertyValue (MySchemaName)那么你需要做的就是为你的结构的其余部分聚合/组合它。 -
@Default:我理解你的讽刺,但可能这个字符串有任何类型的众所周知的语法,我不知道?我不喜欢再发明一个轮子。
-
结果是
Dictionary<>还是XML?
标签: c#