Commons Digester
  1. Commons Digester
  2. DIGESTER-120

digesting xml content with NodeCreateRule swallows spaces.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.8
    • Fix Version/s: 1.8.1
    • Labels:
      None
    • Environment:

      jdk 1.4.2_08, digester 1.8

      Description

      i need to process an xml file that contains entities: ie:

      <?xml version="1.0" encoding="UTF-8"?>
      <top>
      <body>A A</body>
      </top>

      i'm using digester as follows:

      Digester digester = new Digester ();
      digester.addRule ("top", new ObjectCreateRule (MyContent.class));
      digester.addRule ("top/body", new NodeCreateRule ());
      digester.addSetNext ("top/body", "setBody");

      then
      ...
      digester.parse (file);

      MyContent class transforms the node into text as follows:

      public class MyContent
      {
      public void setBody (Element node)

      { String content = serializeNode (node); System.out.println (content); }

      ...
      }

      the content displayed is in this case: <body>AA</body>

      if the body was encoded in the xml file as: <top><body>A A</body></top>, the content would then be correctly displayed as:
      <body>A A</body>

      looking at the NodeCreateRule.NodeBuilder.characters () implementation, the following code generates the problem:
      String str = new String(ch, start, length);
      if (str.trim().length() > 0) {
      top.appendChild(doc.createTextNode(str));

      when entities are being used; the characters () method is called for 'A', ' ' and 'A' in the first case. in the second case, it is called once with 'A A'.

      1. digester-patch.txt
        4 kB
        Simon Kitching
      2. simple.xml
        0.1 kB
        Nguyen Thanh Son Daniel

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Nguyen Thanh Son Daniel
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development