【发布时间】:2013-12-20 13:53:57
【问题描述】:
当我尝试使用找到的解决方案在 JavaScript 中从 Node 转换为 String 时,从这一行开始
var transformer = javax.xml.transform.TransformerFactory.newInstance().newTransformer();
它说
消息:(无法执行所需的评估:JavaScript 错误:内部错误:ReferenceError:未定义“javax”。 (JavaScript 错误:内部错误:ReferenceError:“javax”不是 定义。)
但是 java* 包中的类可以正常工作
这行得通:
var writer = new java.io.StringWriter();
是否可以在不使用 javax* 包中的类的情况下将 Node 转换为 String?
虽然使用 org.w3c.* 是可以的
【问题讨论】:
-
你想做什么?您应该编写一个帮助类来为您处理 XML 并将其实例绑定到您的脚本引擎。
-
@mwhs 我正在使用允许在 javascript 中编写 java 代码的系统工作(javascript 中的新功能,也许在 js 中编写 Java 很常见)。系统中的某些 API 方法返回 DOM 节点实例,我需要在 javascript 中使用 Java 语言将其转换为字符串。那个 javascript“引擎”似乎不支持 javax 包,我无权访问链接包或自定义编写的 /*jar//*class 文件。我需要使用 java* 包中的类将该节点转换为字符串
-
@VextoR
myNode.outerHTML -
我认为这是一种误解。您实际上是在编写 javascript,但某些 java 类已以其全名绑定到您的 javascript 引擎。 java中没有关键字
var。也许您应该告诉我们您的系统的名称。 -
我很确定 Progress Sonic ESB 在内部使用 Rhino 作为其 JavaScript 引擎。我已经相应地更新了问题的标签。
标签: java javascript xml rhino java-5