我搜索了一个转换xml文件的选项。现在我找到了antlr4,我问我有可能为xml文件编写一个Parser吗?我想要的是在我的程序中读取一个xml文件。比我想分析文件的格式,而不是我想重组它。可能吗?这个例子展示了我的问题:
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1">
<xmi:Documentation exporter="MalteFalk" exporterVersion="1.0"/>
<person>
<personelement type="aaa">
<name value="Max" id="1"/>
<lastname value="Hampelmann" id="2"/>
</personelement>
<personelement type="bbb">
<name value="Hannes" id="3"/>
<lastname value="Mustermann" id="4"/>
</personelement>
</person>
<job>
<jobelement type="ccc">
<jobtitle value="barber"/>
<salary value="50000"/>
</jobelement>
<jobelement type="ddd">
<jobtitle value="doctor"/>
<salary value="100000"/>
</jobelement>
</job>
<relationship>
<relation1>
<source id="1"/>
<target id="ddd"/>
</relation1>
<relation2>
<source id="3"/>
<source id="ccc"/>
</relation2>
</relationship>
</xmi:XMI>
现在我想在我的解析器中读取此文件并将其重组为此xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<xmi:XMI xmi:version="2.1">
<xmi:Documentation exporter="XXX" exporterVersion="1.0"/>
<taggedvalues>
<tag type="Max">
<firstname value="Max"/>
<lastname value="Mustermann"/>
<jobtitle value="baber"/>
<salary value="50000"/>
</tag>
<tag type="Hannes">
<firstname value="Hannes"/>
<lastname value="Hampelmann"/>
<jobtitle value="doctor"/>
<salary value="100000"/>
</tag>
</taggedvalues>
</xmi:XMI>
答案 0 :(得分:2)
是,可以在ANTLR4中为XML编写解析器。
否,除非您愿意花费数百甚至数千小时来设计,开发和测试,无数的案例,你几乎肯定没有预料到。