Tabris中的XML特殊字符需要被转义吗?

时间:2014-05-12 16:13:02

标签: tabris

在我们的应用程序中,当包含一个包含像&这样的字符的字符串时,我们会得到一个丑陋的异常(解析器)。

现在我们使用StringEscapeUtils.escapeXml(aLabel)替换这些字符。 这是正确的方法,因为tableView中的标签显示了转义字符而不是干净的&

谢谢, 文森特

3 个答案:

答案 0 :(得分:0)

'&'字符用于SWT / RAP / Tabris中的助记符。它们通常用于标记菜单或按钮中的字符,并带有键盘导航的下划线。 在用于iOS和Android的Tabris客户端上,我们不显示助记符,因为我们没有桌面上的键盘导航 - 但是如果设置它们就不会出现问题。

那么,这个异常发生在哪里? 在服务器上,Android或iOS客户端?

答案 1 :(得分:0)

Jordi,异常发生在getColumnText方法的服务器中。

public String getColumnText( Object element, int columnIndex ) {
      return text;
}

当文本是包含'&'的字符串时,会发生异常比如“Billy& Jean”

这是一个例外:

发生异常

java.lang.IllegalArgumentException: Failed to parse markup text at    org.eclipse.swt.internal.widgets.MarkupValidator.validate(MarkupValidator.java:60)    at org.eclipse.swt.widgets.TreeItem.setText(TreeItem.java:978)  at org.eclipse.jface.viewers.TreeViewerRow.setText(TreeViewerRow.java:176) at org.eclipse.jface.viewers.ViewerCell.setText(ViewerCell.java:162) at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:70)  at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:155)    at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem(AbstractTreeViewer.java:935)   at org.eclipse.jface.viewers.AbstractTreeViewer$UpdateItemSafeRunnable.run(AbstractTreeViewer.java:103)     at org.eclipse.jface.util.SafeRunnable$1.run(SafeRunnable.java:130)     at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:177)

答案 2 :(得分:0)

您看到的例外情况并非来自tabris。它来自RAP。我假设您正在使用tree / table.setData(RWT.MARKUP_ENABLED,Boolean.TRUE);正确?

使用标记时,只允许使用HTML的子集,请参阅http://download.eclipse.org/rt/rap/doc/2.2/guide/reference/api/org/eclipse/rap/rwt/RWT.html#MARKUP_ENABLED

所以,当你使用标记时,你想拥有一个&你需要使用它的实体:&

但请注意:基本标记仅支持Tabris 1.4版(2014年6月26日发布)