我有一个XML文件,每个文件都包含一些信息,它还包含在元素<namespace:description></namespace:description>
中关闭的自身描述。此说明将插入HTML网页并上传到网络。
问题是在description元素中是其他HTML元素,我想将它们保留在那里,以便可以格式化文本,但XPath会转义所有这些元素并仅返回它们的文本。
<namespace:descr>Some <i>nice</i> description</namespace:descr>
我在此XPath查询中尝试了各种变体://*[local-name()='descr']
(我对XPath并不熟练)
还尝试了this answer中找到的//*[local-name()='descr']//*[not(descendant::*[self::p or self::i])]
之类的内容,但它对我不起作用。
所以我的问题是:在使用XPath查询后,有没有办法在文本中保留XML / HTML元素?
答案 0 :(得分:3)
XPath表达式的返回值可以是字符串,数字,布尔值或节点集。这些类型中的每一种都可以转换为其中一种基本类型。
表达式//*[local-name()='descr']
返回一个节点集,但你显然将它转换为一个字符串,该字符串返回节点集中第一个节点的连接文本内容,剥离所有标记。
要将结果节点的内容打印为标记,您需要执行以下操作:
toString()
一样简单。