我有以下XPath来获取div类'article'中的各种<p>
元素:
//div[@class = 'article']/p
结果解析如下:
var outPut = '<div>';
var newContent = data.query.results.p;
newContent.forEach(function(node, index) {
outPut += '<p>' + node + '</p>';
});
这在<br>
元素中有<p>
之前一直正常。在这种情况下,XPath的输出采用以下形式:{"p":[{"class":"abstract","content":"text 1"}, "text2, "text3",{"br":null,"content":"text4", "text5""},"text6","text7"]}
当解析它时,通过上面的代码,带有“br”的花括号内的内容(上例中的text4和5)呈现为(object,Object);
这是我第一次尝试XPath,所以我可能会遗漏一些明显的东西。我可以看到这部分不起作用:data.query.results.p'
,因为所讨论的字符串不在“p”元素中 - 但我不知道我是应该更改XPath还是仅仅解析结果。是否有一些方法来构造XPath,以便<br>
标记被省略或包含“p”元素而不创建新节点?
感谢您的帮助。
修改 在回应下面的评论时,这里有更多信息,
这是确切回答的一个例子:
/**/jQuery1910007391897961497307_1410561766895({"query":{"count":6,"created":"2014-09-12T22:42:55Z","lang":"en-US","results":{"p":[{"class":"abstract","content":"This is the first paragraph"},"This is the second paragraph",{"br":null,"content":"This is the paragraph containing a <br> tag"},"This is the last paragraph"]}}});
这是问题段落如何出现在HTML中的示例:
<p>
Text here
<br></br>
More text here
</p>
HTML中的所有其他段落都包含在<p> </p>
中,并且已正确解析。上面的段落(包含<br>
标记)被解析为(object, Object)
。