XPath concat函数:\n显示为文本



我正在使用concat函数编写Xpath脚本,以使用Xpath 1.0 在行中显示结果

XML示例

<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

XPath

concat("To : ", /note/to , ' n  ', "From : ", /note/from, ' n  ', "Heading : ", /note/heading, ' n  ', "Body : ", /note/body)

结果

To : Tove n  From : Jani n  Heading : Reminder n  Body : Don't forget me this weekend!

然而,当我使用带有两个元素的concat时;\n〃;介于两者之间,效果很好。

xPath:

concat("To : ", /note/to , ' n  ', "From : ", /note/from)

结果:

To : Tove 
From : Jani

XPath不将反斜杠识别为转义符。CCD_ 1简单地表示两个字符";反斜杠"n";,它并不代表换行符。

如果XPath表达式嵌入在Java或C#等宿主语言中,那么宿主语言会在XPath引擎看到n之前将其转换为换行符。但您没有说明表达式出现的宿主语言。

如果您的XPath表达式出现在XSLT或XQuery中,那么您应该将新行写为&#xa;&#x10;。如果是其他环境,那么您可以使用一个文本换行符。

所以答案是,这完全取决于你编写这些表达式的宿主环境。

最新更新