从倍频程调用java
我正在编写一些使用xpath类的脚本。Matlab中没有等效的导入函数的倍频程实现。我发现Matlab不能用非公共构造函数创建对象。我想它在八度音阶上是相似的。So线从倍频程调用java,java,octave,Java,Octave,我正在编写一些使用xpath类的脚本。Matlab中没有等效的导入函数的倍频程实现。我发现Matlab不能用非公共构造函数创建对象。我想它在八度音阶上是相似的。So线 javaObject("javax.xml.xpath.XPathFactory") error: [java] java.lang.NoSuchMethodException: javax.xml.xpath.XPathFactory 给出了错误。但是,有一个公共静态类方法返回类引用newInstance,因此可以创建一个类。
javaObject("javax.xml.xpath.XPathFactory")
error: [java] java.lang.NoSuchMethodException: javax.xml.xpath.XPathFactory
给出了错误。但是,有一个公共静态类方法返回类引用newInstance,因此可以创建一个类。
XPathConstans类没有类似的方法。有没有办法让那个班的学生可以用八度音阶
javaaddpath("C:/Program Files/Java/jdk1.8.0_60/jre/lib/rt.jar");
% Construct the DOM.
% These 3 lines are equivalent to xDoc = xmlread(filename) in matlab
parser = javaObject("com.sun.org.apache.xerces.internal.parsers.DOMParser");
parser.parse(filename);
xDoc = parser.getDocument;
% Create an XPath expression.
%factory = javaObject("javax.xml.xpath.XPathFactory");
factory = javaMethod("newInstance","javax.xml.xpath.XPathFactory")
xpath = factory.newXPath
expression = xpath.compile('//demosection/label');
% Apply the expression to the DOM.
%constants = javaObject("javax.xml.xpath.XPathConstants")
nodeList = expression.evaluate(xDoc,XPathConstants.NODESET);
% Iterate through the nodes that are returned.
for i = 1:nodeList.getLength
node = nodeList.item(i-1);
disp(char(node.getFirstChild.getNodeValue))
end
您正试图访问
XPathConstants
类的静态字段。要访问字段,可以使用java\u get()
。由于该类没有构造,因此需要将其与类名(而不是类的实例)一起使用:
octave>java_-get(“javax.xml.xpath.XPathConstants”,“NODESET”)
ans=
octave>java_get(“javax.xml.xpath.XPathConstants”,“NODESET”).toString()
ans={http://www.w3.org/1999/XSL/Transform}节点集
octave> java_get ("javax.xml.xpath.XPathConstants", "NODESET")
ans =
<Java object: javax.xml.namespace.QName>
octave> java_get ("javax.xml.xpath.XPathConstants", "NODESET").toString ()
ans = {http://www.w3.org/1999/XSL/Transform}NODESET