我目前正在编写一个输入表单,可以输入并格式化文本以供后续用作XML条目。为了使HTML代码可读取为XML,我必须将代码括号替换为相应的符号代码,即用<
替换<
,>
替换>
。
格式化文本会作为变量inputtext的HTML代码传输,因此我们例如有以下文本:
The <b>Genji</b> and the <b>Heike</b> waged a long and bloody war.
需要转换为的内容是
The <b>Genji</b> and the <b>Heike</b> waged a long and bloody war.
我尝试使用.replace()方法:
inputxml = inputxml.replace("<", "<");
inputxml = inputxml.replace(">", ">");
但这只会替换括号的第一个出现位置。我相信我需要某种循环来实现这一点;我也尝试使用jQuery中的each()
函数(一个朋友建议我看看jQuery包),但我对编码还是很新手,我有困难让它正常工作。您如何编写一个循环来替换变量中描述的代码括号?
额外信息:
当然,您的假设是正确的,这是更大事物的一部分。我是日本研究的研究生,目前正在尝试以更易于访问的方式可视化关于日本历史的信息。为此,我使用了由MIT研究生开发的Simile Timeline API。您可以在我的主页上看到时间轴的工作测试。
Simile Timeline使用基于AJAX和JavaScript的API。如果您不想在自己的服务器上安装AJAX引擎,则可以从MIT实施时间轴API。时间轴的数据通常由一个或多个XML文件或JSON文件提供。在我的情况下,我使用XML文件;您可以在此示例中查看XML结构。
在时间轴中,有所谓的“事件”,您可以单击它们以在信息气泡弹出窗口中显示其他信息。这些信息气泡中的文本源自XML源文件。现在,如果您想要在信息气泡中进行一些HTML格式化,则不能使用代码括号,因为它们将仅显示为纯文本。如果使用符号代码而不是普通括号,则可以正常工作。
时间轴的内容将由绝对不习惯编码标记的人员撰写,即历史学家、艺术史学家、社会学家,其中包括数十岁以上的几个人。我尝试向他们解释如何格式化XML文件以创建时间轴,但他们偶尔会犯错误,并在时间轴因为忘记关闭括号或包含撇号而无法加载时感到沮丧。
为了使它更容易,我尝试制作一个易于使用的输入表单,您可以在其中输入所有信息并以WYSIWYG样式格式化文本,然后将其转换为XML代码,您只需将其复制并粘贴到XML源文件中即可。大部分都有效,尽管我仍在努力将主文本字段中的文本标记转换为XML代码。
将代码括号转换为符号代码是我最后需要解决的问题,以便有一个可用的输入表单。
<
代替<
,用>
代替>
。但不是通过JavaScript字符串替换操作实现,而是对字符进行XML编码,这是一个更为复杂的操作。请注意,不要改变原有的意思。 - Tomalak