我有一大堆文件,我的新客户给了我,他告诉我这是XML。我担心他会离开这个,并说他有一点编程知识,并说他希望我使用Linq来处理XML,因为他对此很熟悉。
这是每个文件的样子(注意:用假数据替换真实数据)
<UserSettings>
${
Name: String;
Age: Int32;
Gender: String;
}
${
Name: String;
Age: Int32;
}
</UserSettings>
现在,这对我来说太过分了。
我正在尝试解析这些文件(并且有数百个),但我不知道从哪里开始。我认为最好自己解析它,因为我认为这不像XML,CSV或Json(实际上,这些文件看起来更像Json而不是我遇到过的任何其他文件。但是不过,我认为这也不是Json。)
有没有人见过这些东西?你会建议用什么来解析这样的东西?
答案 0 :(得分:1)
罗伯特哈维说,这看起来像JSON。我会“预处理”文件以使其成为JSON并从那里获取它。基本上,只需运行一堆搜索/替换来使其成为JSON - 就像删除带有一些变量名的$(不确定这是否合法的JSON)并用“”包围变量。
最简单的方法是使用linux中的grep或具有良好搜索/替换功能的windows中的某些程序(如记事本++或textpad)
答案 1 :(得分:0)
是的,我怀疑XML解析器会解析那些。理想情况下,您希望在CDATA标记中包含JSON'esque代码,这样它就是有效的XML,并且可以由Linq-to-XML或其他XML读取器进行解析。是否可以让客户做出改变?
<UserSettings>
<![CDATA[
${
Name: String;
Age: Int32;
Gender: String;
}
${
Name: String;
Age: Int32;
}
]]>
</UserSettings>
答案 2 :(得分:0)
这适用于我使用Linq。
string xml = "<UserSettings> ${ Name: String; Age: Int32; Gender: String; } ${ Name: String; Age: Int32; }</UserSettings>";
try{
XElement x = XElement.Parse(xml);
}
catch
{
}
希望这有帮助。