我收到错误
1字节UTF-8序列的字节1无效
在Java中读取XML文件以生成XSD。
然后我注意到我的XML确实有一些特殊的字符,如'"“”?&因此,在处理XML以生成XSD之前,我已经设法在Java中删除它们。但挑战在于它是动态数据,所以我们可能不知道我们将遇到什么样的角色。
我们如何巧妙地删除这些特殊字符?这样它会匹配UTF-8编码,从来没有这个问题吗?
这可以在XSLT中解决以删除字符吗?
我们如何从下面的部分摆脱这些字符或允许没有问题?
<string>message</string>
<string>Very good dear laughing colours laken yeh heart bhot karap hota ha brain ke baat nahi sunte ha Allah bhagwan god Na yeh kuy banayai ha dear friends ❤</string>
<string>message</string>
<string>वक़्त और दोस्त_मिलते तो मुफ्त_हैं, ☺
लेकिन उनकी_कीमत का अंदाज़ा तब होता_है, ☝ जब ये कहीं खो_जाते है ।...
#</string>
注意:我将XML文档的编码设置为UTF-8。
答案 0 :(得分:0)
您的错误听起来像您的XML文档包含XML中禁止的单字节控制字符。 XML禁止某些字符出现在文档中;有关XML 1.0中允许的字符列表,请参阅https://www.w3.org/TR/xml/#charsets处的Char
制作。
您需要在到达XML之前删除这些字符;否则你的XML将会格式不正确,此时它预计XSLT将无法转换你的文档。
如果您需要转换有效的 XML字符,XSLT可以使用translate
函数执行此操作。例如,在所有文本节点上运行的translate(Windows-1252_string, "„“”", "„“”")
应该解决Windows-1252编码的引号。当然,最好确保在输入到达XML之前修复此输入。