基于lex(flex)、yacc(bison)实现指定格式XML到HTML表格的转换程序开发
基于Flex(Lex) + Bison(Yacc)的XML转HTML表格转换程序
输入规范
程序仅接收固定层级结构的XML文件作为输入,参考输入示例如下:
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="bookstore.xsl"?> <bookstore> <book category="cooking"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="web" cover="paperback"> <title lang="en">Learning XML</title> <author>Erik T. Ray</author> <year>2003</year> <price>39.95</price> </book> </bookstore>
输出要求
针对上述结构的XML输入,程序需生成对应固定结构的HTML表格文件,参考输出示例如下:
<html> <body> <table> <tbody> <tr> <th>Bookstore</th> <th>Book</th> <th>title</th> <th>author</th> <th>year</th> <th>price</th> </tr> <tr> <td></td> <td></td> <td>Everyday Italian</td> <td>Giada De Laurentiis</td> <td>2005</td> <td>30.00</td> </tr> <tr> <td></td> <td></td> <td>Learning XML</td> <td>Erik T. Ray</td> <td>2003</td> <td>39.95</td> </tr> </tbody> </table> </body> </html>
设计约束
- 无需兼容其他任意结构的XML文件,仅针对目标表格结构做解析逻辑开发,降低开发复杂度
- 若输入文件不匹配目标表格结构,解析流程直接通过
yyparse调用yyerror触发报错,不做模糊适配或容错降级 - 解析逻辑需覆盖两类扩展场景:输入中存在多个独立表格、表格结构嵌套子表格
内容的提问来源于stack exchange,提问作者Sutrisna Anjoy
相关产品推荐
相关产品推荐

