我需要通过 XPath 评估器传递一些格式不严格的 XML。XML 实际上主要是 html,可能如下所示:
<p>
<a href="http://www.something.com/5993810749/" title="IMG_3013”>
<img src="5993810749_107ea7d465_m.jpg" width="240" height="160" alt="IMG_3013”/>
</a>
</p>
<p>
<a href="http://www.something.com/836492365986/" title="IMG_3018”>
<img src=“8364923659_107ea3286465_m.jpg" width=“365" height=“248" alt="IMG_3018”/>
</a>
</p>
所以,值得注意的问题是它: 没有根元素;也<img>
没有终止。虽然用根元素包装很容易,但当我通过 XPath 评估器时,我得到一个异常,如下所示:
[Fatal Error] :7:196: The element type "img" must be terminated by the matching end-tag "</img>".
顺便说一句,Java 中 XPath Evaluator 的代码如下所示:
XPath xPath = XPathFactory.newInstance().newXPath();
Object result = xPath.evaluate(xpath,
new InputSource(new StringReader(xmlString)), XPathConstants.NODESET);
所以,我想知道,处理这个问题的最佳方法是什么,以便我可以成功评估 XML?看来我至少有两个选择:(a)尝试让 XPath 评估器更聪明;或者 (b) 尝试有一种方法来自动修复格式不佳的 XML。对此问题的解决方案将不胜感激!