我们需要创建一个通用的XML解析器和规则引擎,它读取XML文件并将数据存储在适当的表中。
用例:
假设我们有来自A的Afile1.xml
<x>
<y>1</y>
<z>a</z>
<x>
数据库中的映射,例如
Source FileName Field Path
A Afile1 table1.value1 /x/y
B Bfile7 table1.value1 /p/q/r
A Afile1 table1.value2 /x/z
我们需要设计一个系统
设计此类系统,perl或Java的最佳平台是什么?观察我们需要使用xpath解析大量的xml。 Java中是否有任何框架可以帮助您轻松构建所需的系统。
谢谢
答案 0 :(得分:4)
恕我直言,最好的方法是停下来思考:人们是否仍然没有构建通用的XML解析器?
感谢第二,二,三......哦,天啊!当然他们已经做到了!
好的,现在让我们来寻找解析XML的方法。从一些谷歌搜索开始。找到SAX和DOM。阅读它们,但等一下!不要开始实现您的真实应用程序。看看JAXB。稍微了解一下。现在提示:看看@XmlAnyElement
。这是您执行通用XML解析所需要的。
好的,现在您可以将XML文档转换为适当的java对象。下一阶段它将对象存储在DB中。这是一个问题:使用哪个DB?我真的需要关系数据库吗?提示:您可能不需要。可能你可以使用一种能够按原样存储对象的NoSql实现。例如MongoDB。
但是,如果您决定使用关系数据库,请首先阅读有关JDBC的信息,但不要直接使用它。当你了解它的工作原理时,请阅读有关JPA的内容,并考虑如何将它用于您的任务。
享受:)
答案 1 :(得分:1)
如果您创建了一个XML解析器(我同意@AlexR,请不要这样做),那么您必须创建一个完全一致的解析器。仅实现一半规范的“XML解析器”不是XML解析器。这是一个威胁。
问问自己是否要实施以下内容:
还有更多。
如果您不理解其中任何一个,那么您的解析器将被破坏。
好的,如果您仍然想要这样做,请阅读规范。再次阅读规范。查找OASIS提供的1000多个一致性测试。确保您的解析器符合所有这些。
然后测试它。 alpha,beta。
您是否忘记了名称空间?
然后才释放它以供使用。