2012-09-13 135 views
0

我有一个类的源代码,它已写在Java 1.6上,并使用XPath从InputStream获取XML,并在XML文档中做出一些特定的更改。现在我必须让这个类与Java 1.4兼容。 Netbeans突出显示XPath类“javax.xml.xpath。*”的导入行。在Java 1.4中,我可以使用XPath的哪些替代方法从InputStream获取NodeList?用于java 1.4的XPath替代方案

+0

到这里看看: [解析JDK1.4中使用XPath XML文件] [1] [1]:http://stackoverflow.com/questions/5094116/parsing- xml-file-using-xpath-in-jdk1-4 – sfat

+0

如果可能的话,我需要使用内置库,而不需要任何外部类。 – Leonid

+0

java.xml.xpath自1.5开始实施...所以没有其他解决方案 – sfat

回答

1

包括你的评论在内的你的问题包含了矛盾。 XPath库没有内置到JDK 1.4中,它们是@since 1.5,尽管它们在Web服务包(JAX-WS?)的JAXP部分中单独提供了一段时间。

您将不得不从外部包中添加或使用JAXP,或者直接使用Apache Xalan。

+0

我不需要直接使用XPath。我需要从XML中获取NodeList,而不是将某些节点复制到新的Document,修改新Document中的某些节点并重命名修改后的节点,而不是返回新的XML。 现在我正在尝试使用 DocumentBuilderFactory.newInstance()。newDocumentBuilder()。parse(inputSource) instead xpath.evaluate(expression,inputSource,XPathConstants.NODESET) – Leonid

+0

当你说“我不需要使用”时,你的意思是“我需要使用”或“我不需要使用”? –

+0

@Leonid你的评论与我的回答有什么关系?有什么需要澄清的吗?那么如何使用DocumentBuilder.parse()构成XPath呢? – EJP