/ OIer TK / 题库 /

可扩展标记语言

可扩展标记语言

测试数据来自 system/1429

描述

XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是处于SGML,标准通用语言。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。下面是做本题所需要了解的XML知识:
1、 XML的首行通常是XML序言,像<?xml version="1.0" encoding="GB2312" ?>这样子的以“<?”开头“?>”结尾的标签,其中encoding项是指的编码,其中“GB2312”是常见的中文编码,编码决定内容的显示方式,其它项在本题中无需考虑,一个XML文档可以不存在序言部分;
2、 XML的主体是诸如“<item>内容</item>”的标签,“<item>”被称作起始标签,“</item>”被称作结束标签,若XML中存在结束标签,则必需有起始标签与其对应,其中“item”是标签名,无标签名的标签在XML中是不允许出现的;
3、 第二条中的“内容”还可以用标签代替,标签名可相同可不相同,比如说“<item><title>Good luck!</title><writer>Lorabit</writer></item>”,我们称“title”标签是“item”标签的标签,相同标签名的标签可以是同一个标签的子标签,其中“Good luck!”、“Lorabit”为文本项;
4、 XML标签的特性是指的类似于“<img src=”http://www\.lorabit\.com/logo\.gif”>”中的“src”,该特性的值为http://www.lorabit.com/logo.gif,双引号可加也可不加,特性与特性之间、特性与标签名之间用空格隔开;
5、 如果XML中有不想被正常解析的字符,如“<XML>”用<![CDATA[<XML>]]>代替则不会被解析成一个标签;
6、 XML对大小写敏感,大小写不相同的标签名或者特性名将会被解析成不同的标签或是特性。

这是一个标准的XML文档的示例:http://www.fuzhongren.com/xml/news.asp
本题定义一种XML,它的解析方式完全符合以上XML标准。在这种XML中有一种名称格式为“Tn”的编码,其中n为1~26的整数,“T1”、“T10”和“T26”都是我们定义的编码名称,“T0001”、“T0”和“T27”则是错误的编码名称,在解析文本项时需要把要显示的文本中的英文字母在按在一个首尾相连的字母表中的顺序往后推n个显示,例如“T2”编码中,“Zero”应该显示成“Bgtq”,默认编码为“T26”,即不进行转换。

你的任务是解析一个如上描述的XML文件,解析时你首先要考虑的是该文件是否符合XML标准的要求,若不符合要求则无需再进行进一步的解析。你要做的是将program标签下的所有begin标签下的所有show特性为true或不含show特性(show特性默认值为true)的write标签中的文本内容按解析顺序从上至下输出r遍,输出之后换一行,r的值存在于与被控制的write标签同父标签的repeat标签下,repeat标签只可能紧接着begin标签出现,并在同一个begin标签下,最多出现一次;若write标签的父标签下没有repeat标签,则r的值继承上一级标签的r值,XML文档的默认r值为1。为了简化本题,输入数据保证:
1、 XML中不存在文本项和标签同时存在于同一个父标签的情况;
2、 有起始标签的就一定有结束标签与之对应;
3、 repeat标签内的文本项是一个小于65536的正整数;
4、 除write标签外的其他标签不包含任何特性;
5、 不会出现题目中未定义的标签或特性;
6、 <![CDATA[内容]]>的内容中不会出现“]”符号;
7、 不会有任意一个文本项的长度超过255;
8、 单个标签名不会跨行,需要输出的文本项也不会跨行;
9、 序言不会与主体部分共行。

格式

输入格式

输入文件的第一行只有一个整数n,接下来n行表示一个XML文档,每行不超过255个字符。

100%的数据满足1<=n<=200。

输出格式

输出文件为你的解析结果,若输入的文档不符合题目中的标准,则输出“ERR0R”(注意这里是0不是O)。

样例1

样例输入1

14
&lt;?xml version=&quot;1.0&quot; encoding=&quot;T25&quot; ?&gt;
&lt;program&gt;
  &lt;begin&gt;
    &lt;repeat&gt;3&lt;/repeat&gt;
    &lt;begin&gt;
      &lt;write show=”ture” &gt;x.&lt;/write&gt;&lt;write show=”true” &gt;x&lt;/write&gt;
    &lt;/begin&gt;
  &lt;/begin&gt;
  &lt;begin&gt;
    &lt;write show=true&gt;.mpsbcju.dpn&lt;/write&gt;
    &lt;write show=false&gt;beijing&lt;/write&gt;
    &lt;write show=”true”&gt;&lt;![CDATA[&lt;2008Bj&gt;]]&gt;&lt;/write&gt;
  &lt;/begin&gt;
&lt;/program&gt;

样例输出1

www
.lorabit.com
&lt;2008Ai&gt;

限制

1 second

来源

Conan From HNSDFZ

信息

ID
1401
难度
(无)
分类
模拟 点击显示
标签
(无)
递交数
0
已通过
0
通过率
?
上传者