从dom中删除未选择的节点

时间:2015-02-13 21:17:59

标签: java dom itext

背景:使用iText将html表单输出转换为pdf,并且只想选择值。如果有三个选项,并且用户选择了如下选项C,则希望仅以pdf格式显示C.

<input type="radio" name="test" value="A">A
<input type="radio" name="test" value="B">B
<input type="radio" name="test" value="C" checked="true">C

对于上面的字符串集,因为只选择了选项“C”,我想获得以下输出:

<input type="radio" name="test" value="C">C

基本上,想要删除非选定节点。尝试以下方式并没有得到预期的输出。

NodeList list = node.getChildNodes();
     for (int i = 0; i < list.getLength(); i++) {
          Element currentNode = null;
           if(list.item(i).getNodeType() == Node.ELEMENT_NODE && list.item(i).getNodeName().equals("input") )
               currentNode =(Element) list.item(i);
                if(conditionDefinedForNotchecked && currentNode != null)
                    currentNode.getParentNode().removeChild(currentNode);
       }

1 个答案:

答案 0 :(得分:1)

我喜欢iText,但我仍然发现创建一种中间HTML格式让我的生活更轻松,因为HTML调试/查看比PDF更先进。

建议流程:

  1. 真实HTML
  2. JSoup转换为简化的HTML,其中包含所有未使用的元素+指定的所有尺寸
  3. IText输出。