当前位置: 首页 > 知识库问答 >
问题:

使用vtd xml从xml文件中删除注释,删除注释

幸乐湛
2023-03-14

有没有办法从一个巨大的xml文件中删除注释(

两者,根元素前的注释

<!-- comment -->
<rootElement>
.
.
.
 </rootElement>

和内的注释

<rootElement>
<book>
<!-- comment -->
</book>
</rootElement>

最好的解决方案是使用xPath。我试过了

//comment()

它适用于DOM,但不适用于vtd xml

这是我选择评论的代码

String xPath = "//comment()"
XMLModifier xm = new XMLModifier();
VTDGen vg = new VTDGen();
if (vg.parseFile(fnIn,true)){
       VTDNav vn = vg.getNav();
       xm.bind(vn);
       nodeXpath(xPath,vn);
}

private void nodeXpath(String xPath, VTDNav vn) throws Exception{
    int result;

    AutoPilot ap = new AutoPilot();
    ap.selectXPath(xPath);
    ap.bind(vn);
    while((result = ap.evalXPath())!=-1){
        int p = vn.getText();

        if (p!=-1) {                
            System.out.println(vn.getText() + ", " + vn.toString(p));               
        }
    }
}

但此处的屏幕上打印的是nothing。

有没有办法用vtd xml做到这一点?

谢谢你的帮助。

共有1个答案

司空海荣
2023-03-14

您提到您的代码没有向屏幕打印任何内容......甚至没有逗号?我不期望它一定会打印getText()中的任何内容,因为getText()的文档似乎表明它返回“类型字符数据或CDATA”,我认为它不包括注释的内容。(谢谢@vtd-xml-作者确认这一点。)

一个好的测试是在p=vn.getText()之前打印您的while循环的每次迭代中的某些内容,这样您就可以知道它是否正在查找注释。

如果它正在查找注释,我想你会想在每个注释上调用xm.removeToken(结果)

 类似资料:
  • 问题内容: IntelliJ中是否有插件或工具可以将所有注释从源.java文件中删除?我已经阅读了有关可以执行此操作的[ANT任务的信息。希望在IDE中执行相同的操作。另外,也可以使用TextPad插件。 问题答案: 您可以在正则表达式模式下使用“替换”(如果要删除多个文件中的注释,则可以使用“在路径中替换”),然后在“查找文本”字段中使用此正则表达式: 并将其替换为空字符串。然后按“全部”,以将

  • 有没有一种标准且简单的方法可以使用Maven插件从HTML模板(Thymeleaf)中删除注释?如果它能按惯例只为

  • 问题内容: 我正在编写一个程序来自动编写一些C代码,(我正在编写将字符串解析为同名枚举)C对字符串的处理不是很好。所以有些人一直在me我尝试python。 我做了应该删除C风格的功能,并 从字符串:下面是代码: 所以我尝试了这段代码。 它显然什么也没做。 关于我做错了什么建议? 有句话我已经听过几次了: 如果您有问题,并尝试使用Regex解决它,则会遇到两个问题。 编辑:回顾这几年后。(经过更多的

  • 我想使用docx4j删除docx文件中的所有注释。 我可以使用如下所示的一段代码删除实际的注释,但我认为我也需要从主文档部分删除注释引用(否则文档已损坏),但我不知道如何做到这一点。 感谢您的指导! 我还在docx4j论坛上发布了这个问题:http://www.docx4java.org/forums/docx-java-f6/how-to-remove-all-comments-from-doc

  • 用户可以正常选择文本,然后从UIMENU中选择“高亮显示”或“删除高亮显示”。 为了在选择文本时自定义pdfView,我已经更改了出现的菜单-首先通过删除默认操作: 然后在viewDidLoad()中设置了自定义UIMenuItems: 当我选择突出显示的文本时,我希望用户能够通过点击“删除突出显示”来删除突出显示注释,但我根本无法想出如何仅仅删除隐藏在所选文本“后面”的注释。 这段代码正在工作,

  • applyChange()方法总是返回“unsuccessful”,我找不到任何关于注释删除不起作用的文档。 注:在http://sourceforge.net/p/owlapi/mailman/message/28203984/here似乎起作用