将XML属性转换为有效的HTML属性值?

时间:2011-10-10 18:24:07

标签: java xml tomcat

我在Tomcat 6.0.33应用服务器上使用Java 6。我得到的XML必须作为表单元素呈现。我收到的XML看起来像

 <pquotec type='input' label='Price Quote Currency' nwidth='200' vlength='10'>
   XYZ
 </pquotec>

及以下是所需的输出。

 <label for="#valid_id_goes_here">Price Quote Currency</label>
 <input type="text" size="10" style="width:200px;" value="XYZ" name="#valid_name_goes_here#" id="#valid_id_goes_here#" />

我的问题是,将存储在XML元素的label属性中的值转换为可以替换上面的“#valid_name_goes_here#”的策略是什么?优选地,策略将允许我再次翻译。请注意,“”中出现的内容可能不一定适合id和name的值。

感谢您的帮助, - 戴夫

2 个答案:

答案 0 :(得分:1)

输入元素的name属性被定义为具有CDATA类型,它基本上意味着“任何字符数据”,所以我认为应该没有真正的问题。

如果确实遇到有效性问题,您可以将任何“尴尬”(或简称所有)字符转换为其编码形式。例如。 é将成为&amp;#233;。

答案 1 :(得分:0)

USE XSLT - 这是一个将XML转换为HTML的示例,但将XML转换为XML也是微不足道的。

在java Xalan中可以执行XSLT,this thread也可以帮助您。

如果您想进行XML解析并使用JSP呈现目标HTML,请参阅this thread以获取XML解析器列表

编辑:

嗯,你可以写一个没有XML&amp; HTML片段,并简单地询问如何将任何字符串转换为有效的HTML ID,然后再返回。

使用data- attributes HTML存储原始传入字符串。然后使用正则表达式从传入的字符串中提取有效字符,用下划线替换所有无效字符,并将其用作ID。您可能会获得重复的ID。在这种情况下,您可以随时返回并使XML以不重复的方式进行。

这样您就可以取回原始字符串并拥有有效ID