下面是我的xml文档,现在我的查询是:/description/*/text()
,我可以获取所有文本,但<strong> lunch </strong>
里面的文本“午餐”没有显示。
这可能是一个简单的修复,但我无法正确解决。
<description>
<![CDATA[
<p>
Envie is a brand new Bar Lounge that offers a modern-design space opening onto Wyndham Street, where on busy nights the crowd spills out onto the street...
</p>
<p>
If you are in for a <strong>lunch</strong>, the Twangoo voucher will offer you two delicious Lunches – perfect for that lunch meeting, a casual date or just a get together with friends in a relaxed and modern atmosphere.
</p> ]]>
</description>
答案 0 :(得分:3)
尝试
/description//text()
现在,您只为描述的所有子节点选择每个文本。
如果您使用//text()
代替;您正在为当前节点(描述)的后代所有节点选择每个文本。
答案 1 :(得分:0)
您的查询/ description / * / text()选择description元素的元素子节点的文本节点子节点。但是description元素没有元素子元素。它会有,除了CDATA告诉解析器不要将<p>...</p>
内容视为标记,而是将其作为纯文本。我不知道为什么XML将这些内容包装在CDATA中,但它使得处理或查询它变得更加困难。