是否可以从处理指令中获取值?

Is it possible to get a value from an processing instruction?

正如我在标题中所问,是否可以从处理指令中获取值?

例如:

<root>
<?ConditionState 4?>
</root>

我尝试了很多方法来实现这个结果,但我一无所获...

这是我尝试过的一种方法(错误案例):

<root>
    <xsl:value-of select="root[?ConditionState]"></xsl:value-of>
</root>

我要实现这个结果:

<root>
    4
</root>

或者:

<root>
    3
</root>

我也试过: substring-after(substring-before(/root,'?>'),'<?ConditionState ') 但这也不管用。

包含在<??>中的XML节点不是元素,而是处理指令 并且可以使用 processing-instruction() 节点测试来选择它。

见下文:

<xsl:template match="root">
        <xsl:value-of select="processing-instruction('ConditionState')"/>
</xsl:template>
    

请参阅 https://xsltfiddle.liberty-development.net/jxDjin4

处的转换