gpt4 book ai didi

xslt - 如何在 XPATH 2.0 中使用 "<<"运算符?

转载 作者:行者123 更新时间:2023-12-02 03:13:06 25 4
gpt4 key购买 nike

我正在研究 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 的答案中至&lt;&lt; ,您可以简单地切换 << 的参数顺序运算符(operator)和使用>> (不需要转义),因此:

代替:

<xsl:sequence select="/Root/*[../H1[2] &lt;&lt; .]"/>

使用:

<xsl:sequence select="/Root/*[. >> ../H1[2]]"/>

关于xslt - 如何在 XPATH 2.0 中使用 "<<"运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57018158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com