我有一个带有html标签的xml文件,如:
<?xml version="1.0" encoding="utf-8" ?>
<blog>
<blogid>49</blogid>
<title>[FIXED] Job requests page broken</title>
<fulltext>
<img title="page broken" src="images/west/blog/site-broken.jpg" alt="page broken" />
<p><span style="background-color: #ccffcc;">Update 28/05/2011</span>: Job requests page seems to be working OK now. If you find any issues please use the contact page to notify us. Thank you for your patience!</p>
<p>Â </p>
<p>Well, what can I say? Why does it always have to be that way? You are trying to create something new and something else gets broken on the way...</p>
</fulltext>
现在我想要标签之间的整个html部分。 我现在得到的是空白,因为我认为dom也在解析html标签。
我试过xpath,但它不适用于android。
答案 0 :(得分:0)
我认为你不能将这个格式不正确的XML原样带入DOM中。 (编辑:还是格式良好?)
你需要a)要么逃避字符 - 使XML格式良好和可解析(但可能不是你想要的DOM,我想你想在不同的系统中显示HTML)或b)解析它使用流处理器或c)使用字符串操作修复它(添加&lt; [[CDATA ..]]&gt;)然后将其解析为DOM。
HTH
答案 1 :(得分:0)
HTML是XML的子语言(无需深入了解与XHTML相关的详细信息)。因此,DOM解析器没有理由不将这些内部标记视为XML标记。
也许您正在寻找的是一种展平<fulltext>
内部内容的方法?
答案 2 :(得分:0)
为此目的使用像Jsoup这样的库。
public static void main(String args[]){
String html = "<?xml version="1.0"?><foo>" +
"<bar>Some text — invalid!</bar></foo>";
Document doc = Jsoup.parse(html, "", Parser.xmlParser());
for (Element e : doc.select("bar")) {
System.out.println(e);
}
}