由于特殊字符,XML无法正确生成

时间:2016-12-02 10:05:41

标签: xml xslt

现在我有一个XML,它基本上是所有站点和子站点的名称。 XML的形成是这样的:

android:paddingStart="10dp"

现在,该网站的一个标题有“#VT;"”。我无法粘贴它,因为它没有采用符号(参见下面的屏幕截图)。它表示VT在记事本++中复制,而符号表示箭头,在记事本上有一个圆圈。在浏览器上,如果我尝试复制它给出一个空的空间。我将附上符号的屏幕截图,如它在记事本中的显示方式。

问题是由于这个特性导致XML中断。我已经使用正确的编码处理了所有可能的特殊字符但是这个符号我无法在我的代码中替换,因为我无法在Visual Studio中复制和粘贴。它只出现在记事本和记事本++中。关于如何处理这个charchter的任何想法?? enter image description here

2 个答案:

答案 0 :(得分:1)

没有实际代码,它看起来可能是垂直制表符正则表达式? http://docs.notepad-plus-plus.org/index.php/Regular_Expressions

查找字符使用HEX ASCII Notepad ++ Convert插件

VT的十六进制值为0x0b 和十进制值是11

一旦你知道该角色使用XSLT替换功能。

How should the '\t' character be handled within XML attribute values?

答案 1 :(得分:1)

如果它是垂直制表符(x0B),则它不是XML 1.0中的合法字符。您将不得不决定是否尝试以某种方式表示它,或者是否放弃它或替换它。表示此类字符的一种方法是处理指令const actionTypes = ['SAMPLE'], map = {} for (const name of actionTypes) map[name] = name ,但仅适用于文本节点,而不适用于属性。

切换到utf-8对这个特定的角色无济于事,但如果你无法控制输入中的角色曲目,那么这通常是一个好主意。