给定如下传统格式XML文档1:
<?xml version="1.0" encoding="utf-8"?> <books> <book> <ISBN>8475484848</ISBN> <title>XML技术</title> <price>80</price> </book> <book> <ISBN>35235348</ISBN> <title>Python programming</title> <price>65</price> </book> <book> <ISBN>67676348</ISBN> <title>Java development</title> <price>76</price> </book> <book> <ISBN>27974348</ISBN> <title>NodeJS development</title> <price>90</price> </book> </books>
给定如下创新格式XML文档2:
<?xml version="1.0" encoding="utf-8"?> <table id="books" border="1"> <tr bgcolor="yellow"> <th>书号</th> <th>书名</th> <th>价格</th> </tr> <tr class="book"> <td>8475484848</td> <td>XML技术</td> <td>80</td> </tr> <tr class="book"> <td>35235348</td> <td>Python programming</td> <td>65</td> </tr> <tr class="book"> <td>67676348</td> <td>Java development</td> <td>76</td> </tr> <tr class="book"> <td>27974348</td> <td>NodeJS development</td> <td>90</td> </tr> </table>
提出如下设计需求:
测试用户期望功能如下:
数据流核心环节描述如下:
基于分层架构视角的文件包及文件设计如表6.1所述。
序号 | 包设计 | 文件设计 |
---|---|---|
1 | 设计表示层包(包名:UI),相当表示层文件容器。 |
|
2 | 设计数据层包(包名:data),相当数据层文件容器。 |
|
文件功能说明见表6.2。
序号 | 文件名 | 作用 |
---|---|---|
1 | Books_new.xml | 创新格式XML文档 |
2 | Books_old.xml | 传统格式XML文档 |
3 | jquery-1.11.1.js | 加载JQuery函数库,辅助数据可视处理及读取测试基础数据。 |
4 | main.html | 实现人机交互的用户界面主页 |
5 | UI | 界面处理逻辑文件所在文件夹 |
6 | data | 数据文件所在文件夹 |
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <title></title> </head> <body> <h3>传统格式XML文档与创新格式XML文档比较测试</h3> <hr /> <span style="background-color:black;color:white" onclick="view_Doc('./data/books_old.xml')">查看传统格式原始文档</span> <span style="background-color:black;color:white" onclick="view_Doc('./data/books_new.xml')">查看创新格式原始文档</span> <hr /> <textarea id="text_result" style="width:400px;height:300px"></textarea> <br /> <input type="button" value="格式化当前文本以表格形式呈现" onclick="text_to_table()" /> <hr /> <div id="format_result"> </div> </body> </html> <script type="text/javascript" src="./UI/jquery-1.11.1.js"></script> <script type="text/javascript"> //格式化当前文本 function text_to_table() { var temp = $("#text_result").text(); if (temp.indexOf("<table") >= 0) { $("#format_result").html(temp); } else { var temp = temp.replace("<books>", "<table border='1'><tr><th>书号</th><th>书名</th><th>价格</th></tr>"); temp = temp.replace("</books>", "</table>"); temp = temp.replace(/<book>/g, "<tr>"); temp = temp.replace(/<\/book>/g, "</tr>"); temp = temp.replace(/(<ISBN>|<title>|<price>)/g, "<td>"); temp = temp.replace(/(<\/ISBN>|<\/title>|<\/price>)/g, "</td>"); $("#format_result").html(temp); } } //查看原始文档 function view_Doc(file) { $.get(file, function (data) { $("#text_result").text(data); }, "text"); } </script>
读取传统格式XML文档实现效果如图6.5所示。
读取创新格式XML文档实现效果如图6.6所示。
问题提出:创新格式XML文档相对传统格式XML文档,其主优势是什么?
问题思考:
给定如下传统格式XML文档:
<?xml version="1.0" encoding="utf-8"?> <students> <student category="new_student"> <s_id>8475484848</s_id> <s_name>Max</s_name> <age>18</age> </student> <student> <s_id>35235348</s_id> <s_name>Jack</s_name> <age>20</age> </student> <student> <s_id>67676348</s_id> <s_name>Json</s_name> <age>21</age> </student> <student> <s_id>27974348</s_id> <s_name>Rose</s_name> <age>19</age> </student> </students>
给定如下创新格式XML文档:
<?xml version="1.0" encoding="utf-8"?> <table id="trs"> <tr> <th>学号</th> <th>姓名</th> <th>年龄</th> </tr> <tr category="new_student"> <td>8475484848</td> <td>Max</td> <td>18</td> </tr> <tr> <td>35235348</td> <td>Jack</td> <td>20</td> </tr> <tr> <td>67676348</td> <td>Json</td> <td>21</td> </tr> <tr> <td>27974348</td> <td>Rose</td> <td>19</td> </tr> </table>
提出如下设计需求: