Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何获得xslt中的第一人称?_Xml_Xslt - Fatal编程技术网

Xml 如何获得xslt中的第一人称?

Xml 如何获得xslt中的第一人称?,xml,xslt,Xml,Xslt,我有类似dis的代码 <xsl:if test='last-name="andrew"'> print first person </xsl:if> 打印第一人称 那么,如何找到第一个姓andrew的人呢?而不必看到你的来源很难确定,但可能 select='person[last-name="andrew"][1]' 假设结构如 <person><first-name>David</first-name><last

我有类似dis的代码

    <xsl:if test='last-name="andrew"'>
print first person
</xsl:if>

打印第一人称

那么,如何找到第一个姓andrew的
人呢?

而不必看到你的来源很难确定,但可能

select='person[last-name="andrew"][1]'
假设结构如

<person><first-name>David</first-name><last-name>Carlisle</last-name></person>
<person><first-name>David</first-name><last-name>andrew</last-name></person>
<person><first-name>andrew</first-name><last-name>andrew</last-name></person>
DavidCarlisle
大卫德鲁
安德烈万德鲁
如何找到第一个姓安德鲁的人

如果上下文(当前)节点是
person
元素的父节点,则所需的XPath表达式为

person[last-name = 'andrew'][1]

这将选择上下文节点的第一个子节点(按文档顺序),使其名称为
person
,其第一个子节点
last name
的字符串值为字符串
“andrew”

与此不同,“last name”没有xpath,因为“last name”不是XSLT或xpath函数标准的一部分。您的XML是什么-发布在这里。如果没有这些,我们只能猜测。提供一个简短的XML文档会很有帮助,这样人们就不必猜测您的评论是否放错了位置。在发布的代码中,last name正在选择该名称的元素,因此没有该名称的函数这一事实是不相关的。@David-如果没有他使用的XML,任何答案都是猜测,我是在指出这需要是函数或节点的名称。@Woody这是对您最初评论的非常慷慨的解读。发布的代码是有效的xpath,即使库中存在同名函数,也不会引用该函数。因此,语句“没有‘姓’的xpath”是错误的,语句“不是XSLT或xpath函数标准的一部分”是不相关的。David,OP想选择第一个具有所需属性的
人。是的,我想在您评论时我已经编辑了:-)我在第一个版本中编写了last()而不是1,看错了问题。