I read in the documentation that one uses the NodeSet class to return a nodeset to the transformer if you want to change the input list. Is it possible to change the contents or attributes of the input nodelist and send it back. I have had no luck. When I try to add an attribute or a new element to the input nodeset, it bombs. Here is my scratch code:

   public NodeSet testext2(NodeList pNodeList){
       int i=0;
       NodeSet lNodeSet3    = new NodeSet();
       Node lNode  = (Node)pNodeList.item(0);
       NodeList lNL2       = lNode.getChildNodes();
       int iLen            = lNL2.getLength();
      Node lNode2  = null;
      Element lElem4   = null;
      Attr lAttr   = null;
      int iType;
      for( i=0; i<iLen; i++)
      {
          lNode2   = (Node)lNL2.item(i);
           iType    = lNode2.getNodeType();
          if(iType == Node.ELEMENT_NODE)
          {
              lElem4   = (Element)lNode2;
              //
              // This code works if the following line is commented out.
              //
              lElem4.setAttribute("test", "junk");
              lNodeSet3.addNode(lElem4);
          }
          System.out.println("Size:" + lNodeSet3.size());
      }

       Node lNode4  = null;
       Document lDocOut    = _DBuilder.newDocument();
       Document lDocIn     = lNode.getOwnerDocument();
       Element lElem       = lDocOut.createElement("test");
       Element lElem2       = lDocOut.createElement("test2");
       Element lElem3       = lDocOut.createElement("test3");
       lElem.appendChild(lElem2);
       lElem.appendChild(lElem3);
       lDocOut.appendChild(lElem);
       //Node lNodeImported = lDocIn.importNode(lElem, true);
       //lNode.appendChild(lNodeImported);
        NodeSet lNodeSet4    = new NodeSet();
        Element lElemDoc   = lDocOut.getDocumentElement();
        NodeList lNL4      = lElemDoc.getChildNodes();
        iLen            = lNL2.getLength();
       lNode2  = null;
      for( i=0; i<iLen; i++)
      {
          lNode2   = (Node)lNL4.item(i);
          if(lNode2 != null )
          {
               iType    = lNode2.getNodeType();
               if(iType == Node.ELEMENT_NODE)
               {
                     //
                     // The following line throws an exception
                     //
                   lNode4  = lDocIn.importNode(lNode2,true);
                   lNodeSet4.addNode(lNode4);
               }
               System.out.println("Size:" + lNodeSet4.size());
          }
      }

       return lNodeSet3; // or lNodeSet4
   }




_________________________________________________________________
Join the world�s largest e-mail service with MSN Hotmail. http://www.hotmail.com




Reply via email to