作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究 XPath 2.0 中节点比较的概念。我正在使用优先运算符 <<
并收到以下错误:
The value of attribute "select" associated with an element type "xsl: sequence" must not contain the '<' character.
我尝试使用 XPath 2.0 先于运算符
<xsl:sequence select="/Root/*[../H1[2] << .]"/>
下面是我尝试过的代码。
输入:
<?xml version="1.0" encoding="UTF-8"?>
<Root>
<H1>first</H1>
<p>Test</p>
<H1>second</H1>
<p/>
<p/>
<H1/>
<p/>
<p/>
</Root>
处理:我使用 <<
选择前面的元素运算符。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:sequence select="/Root/*[../H1[2] << .]"/>
</xsl:template>
</xsl:stylesheet>
问题:
The value of attribute "select" associated with an element type "xsl:sequence" must not contain the '<' character.
预期结果: 使用 <<
查找 H1[2] 元素的前一个元素运算符。
最佳答案
如果您想避免 <<
的不可读转义,请添加到 Martin 的答案中至<<
,您可以简单地切换 <<
的参数顺序运算符(operator)和使用>>
(不需要转义),因此:
代替:
<xsl:sequence select="/Root/*[../H1[2] << .]"/>
使用:
<xsl:sequence select="/Root/*[. >> ../H1[2]]"/>
关于xslt - 如何在 XPATH 2.0 中使用 "<<"运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018158/
我是一名优秀的程序员,十分优秀!