使用JavaJavaScript脚本API操作HTML节点

使用JavaJavaScript脚本API操作HTML节点,java,javascript,rhino,nashorn,java-scripting-engine,Java,Javascript,Rhino,Nashorn,Java Scripting Engine,我用的是工作很好的。现在我有了一个函数,我想从一个字符串中获取所有标记,然后在返回被操纵的字符串之前添加/删除属性。当然问题是,我不能只使用document.getElementsByTagName。有没有一个简单的选择,不经过regex地狱就出现在你的脑海里 请注意,我目前正在运行Java 7(使用Rhino),计划更新到Java 8(使用Nashorn),所以我不想使用任何Rhino特定的API。在Addi Osmani的《学习JavaScript设计模式》一书中,作者提到了类似问题的3个备

我用的是工作很好的。现在我有了一个函数,我想从一个字符串中获取所有
标记,然后在返回被操纵的字符串之前添加/删除属性。当然问题是,我不能只使用
document.getElementsByTagName
。有没有一个简单的选择,不经过regex地狱就出现在你的脑海里

请注意,我目前正在运行Java 7(使用Rhino),计划更新到Java 8(使用Nashorn),所以我不想使用任何Rhino特定的API。

在Addi Osmani的《学习JavaScript设计模式》一书中,作者提到了类似问题的3个备选方案,显然是getElementById()最快

摘自此书:

假设我们有一个脚本,其中每个DOM元素都位于页面上 对于类“foo”,我们希望增加一个计数器。最重要的是什么 查询此元素集合的有效方法?嗯,在那里 有几种不同的方法可以解决这个问题:

  • 选择页面中的所有元素,然后存储对它们的引用。接下来,筛选此集合并使用正则表达式(或 另一种方法)仅存储类为“foo”的对象
  • 使用现代本机浏览器功能,如
    querySelectorForAll()
    选择类为“foo”的所有元素
  • 使用netive功能,如
    GetElementsByCassName()
    ,类似地
另一种方法是,因为您使用的是Nashorn/Rhino,所以可以使用Xerces库的Java实现来操作DOM

希望这能帮助您找到解决方案