当前位置: 首页 > 面试题库 >

SAXParser'&'串联问题

施令雪
2023-03-14
问题内容

我目前正在将SAXParser与SAXParserFactory一起使用,并且遇到了字符串在’&’符号处被截断的问题。例如:“国家创造了我们的世界及其中的一切”变成了“其中的一切”。

显然,我不希望这种情况发生。在xml输入中,该字符正确地转义为&。我该如何解决?

try{
            SAXParserFactory spf = SAXParserFactory.newInstance();
            SAXParser sp = spf.newSAXParser();

            /* Get the XMLReader of the SAXParser we created. */
            XMLReader r = sp.getXMLReader();

            //This handles the xml and populates the entries array
            XMLHandler handler = new XMLHandler();


            // register event handlers
            r.setContentHandler(handler);
            String url = "http://foobar.xml";
            r.parse(url);

            return handler.getEntries();
}

我的DefaultHandler类中有这个

....
    public void characters( char ch[], int start, int length ){
           String value = new String( ch , start , length );

           if(!value.trim().equals("")) {

               if( currentElement.equalsIgnoreCase("TITLE") ) {
                   tempEntry.setTitle(value);
               }
....

问题答案:

SAX
API不保证任何给定的文本节点都将被交付。允许将其分解为对该characters()方法的多次调用。您的应用程序必须适应这种情况,然后重新组装它们本身。

顺便说一句,Nation Created Our World & everything in it它不是有效的XML文本片段,必须为Nation Created Our World & everything in it。在这种情况下,SAX解析器可能会将其分解为Nation Created Our World&everything in it,并且您的应用仅记住最后一个。



 类似资料:
  • Examples var parser = new tinymce.html.SaxParser({ validate: true, comment: function(text) { console.log('Comment:', text); }, cdata: function(text) { console.log('CD

  • 我正在使用Keras,我有这个错误。我该如何解决它? 这是我的代码: 我得到了这个问题:

  • 我试图解组xml导致saxparser异常,因为元素的值有一个未正确关闭的标记元素。这是我得到的,我必须处理的。 这里是示例xml- 上面的xml和其他字符串一起作为命令的值,标签没有正确关闭,导致以下异常- [org.xml.sax.saxpasseeption;行号:1;列号:212;元素类型“ctag”后面必须跟有属性规范,” 将xml输入作为字符串阅读器提供给unMarshall 我有两个

  • 问题内容: 我需要知道是否可以连接字符串,如下所示?如果没有,那么还有什么选择呢? 它应该看起来像人等。 您不能在串联中使用符号,那么替代方法是什么? 问题答案: 仅用于连接。而您错过了增量!

  • 本文向大家介绍通过+(字符串串联)运算符进行字符串串联。,包括了通过+(字符串串联)运算符进行字符串串联。的使用技巧和注意事项,需要的朋友参考一下 您可以使用Java的“ +”运算符来连接字符串。 示例 输出结果

  • 问题内容: 我正在编写一个Java程序来读取XML文件,实际上是一个iTunes库,它是XML plist格式。我设法解决了这种格式引发的大多数障碍,除非遇到包含的文本。XLM文件将“与”号表示为,并且我只能设法在文本的任何特定部分之后读取文本。 有没有办法禁用转义码检测?我正在使用SAXParser。 问题答案: 您尝试执行的操作有些混乱。 如果您尝试解析的文件格式包含“&” 字符,则它 不是