我需要在Java中的String值中出现任何div标记。 字符串中此div标记的位置未知。 任何人都可以帮助任何有用的提示或链接吗? 谢谢。
答案 0 :(得分:0)
import java.io.StringReader;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathFactory;
import org.xml.sax.InputSource;
public class Demo {
public static void main(String[] args) throws Exception {
String xml = "<div><![CDATA[<p>hellowrold</p>]]></div>";
String xpath = "/div/text()";
XPath xPath = XPathFactory.newInstance().newXPath();
String childHtml = xPath.evaluate(xpath, new InputSource(new StringReader(xml)));
System.out.println(childHtml);
xpath = "/p";
String result = xPath.evaluate(xpath, new InputSource(new StringReader(childHtml)));
System.out.println(result);
}
}
Xpath用于遍历XML。你可以用XPath做更多的事情。在您的情况下,问题是CDATA标记隐藏您要提取的元素。以上内容可以帮助您逃脱这一切。上面做了什么?首先将CDATA标记作为单独的xml提取,然后在其上应用xpath。