java - 无法从 XML 文件读取 <post_body> 标记

标签 java

我昨天问过this问题。现在我遇到了类似的 XML 文件的问题。我的问题是,它读起来一切都很好,直到“post_body”。它在 starElement 中进行测试时确实找到了它,但无法打印该标签的上下文。
这是为什么 ?我还被建议在 endDocument() 中打印 s 但似乎不起作用。这是我的 XML 文件和代码:

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <data>
      <track clipid="1">
         <url>http://www.emp3world.com/to_download.php?id=33254</url>
         <http_method>GET or POST</http_method>
         <post_body>a=1&b=2&c=3</post_body>
      </track>
   </data>
</root>

代码:

class MyHandler extends DefaultHandler
{
    String str = "";
    StringBuilder s = new StringBuilder();
    public void startElement(String namespaceURI, String sName, String qName, Attributes atts)
    {

        s.setLength(0);

        if(qName.equals("track"))
        {
            s.append("ID: ").append(atts.getValue("clipid")).append("\n");
        }
        if(qName.equals("url"))
        {
            s.append("URL: ");
        }
        if(qName.equals("http_method"))
        {
            s.append("Http method: ");
        }
        if(qName.equals("header"))
        {
            s.append("Header: ");
        }
        if(qName.equals("post_body"))
        {
            s.append("Post body: ");
        }
    }

    public void endElement(String uri, String localName, String qName)
    {
        System.out.println(s);
    }

    public void characters(char[] ch, int start, int length) throws SAXException {
        s.append(new String(ch, start, length));
    }
}

最佳答案

这不是有效的 XML:

<post_body>a=1&b=2&c=3</post_body>

& 符号未正确编码,因此该文件格式错误且无效,XML 解析器将无法读取它。

应该是

<post_body>a=1&amp;b=2&amp;c=3</post_body>

关于java - 无法从 XML 文件读取 <post_body> 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6578681/

相关文章:

java - 在使用 spring security 注销用户之前调用一些逻辑?

java - IOException 没有提供足够的信息

java - 当通过鼠标更改值时,JList 会触发 valueChanged 两次

java - 如何让我的人机玩家轮流玩 Connect4 游戏?

Java Connection.setClientInfo 结果 AbstractMethodError

java - 将 4 个不同的整数转换为设定长度的字节数组

java - .jar 文件不带参数运行

java - 按钮交互失败

java - Grails:Bootstrap.groovy 与 ServletContextListener

java - 如果给我一堆组合,每个组合都有 k-1 个元素,如何生成大小为 k 个元素的列表?