回答
<xsl:if test="xpath-expression">...</xsl:if>
因此,例如正确的基本结构
<xsl:if test="/html/body">body node exists</xsl:if>
<xsl:if test="not(/html/body)">body node missing</xsl:if>
因为这个问题根本没有指定使用XSLT,所以感到惊讶。 – tjmoore 2011-07-21 19:31:21
这真棒,但如果我想检查它是否存在或是空的呢? – SearchForKnowledge 2015-05-14 19:06:42
@SearchForKnowledge,你可能应该问这是一个新的问题,但作为一个快速指南:`html/body和not(html/body/node())`(即只测试它是否存在,而不是包含任何子节点或文本节点)。 – Abel 2015-09-06 11:30:32
一使用count()在Java中使用xpath时的变化:
int numberofbodies = Integer.parseInt((String) xPath.evaluate("count(/html/body)", doc));
if(numberofbodies==0) {
// body node missing
}
这工作超级大! – 2016-05-03 02:10:42
请尝试以下表达式:boolean(path-to-node)
这正是我在使用lxml的Python中使用XPath时所需要的。 – 2011-03-18 12:04:03
可能会更好地使用选择,不必输入(或可能错误键入)多次表达式,并允许您遵循其他不同的行为。
我经常使用count(/html/body) = 0
,因为具体的节点数量比集合更有趣。例如...当意外地有超过1个节点符合你的表达。
<xsl:choose>
<xsl:when test="/html/body">
<!-- Found the node(s) -->
</xsl:when>
<!-- more xsl:when here, if needed -->
<xsl:otherwise>
<!-- No node exists -->
</xsl:otherwise>
</xsl:choose>
是正确的,无论是在使用xsl:if
的,并在语法检查的节点的存在。然而,正如帕特里克的回答所暗示的那样,没有xsl等同于if-then-else,所以如果你正在寻找更像if-then-else的东西,你通常会更好地使用xsl:choose
和xsl:otherwise
。所以,帕特里克例如语法都可以工作,但是这是一种替代方案:
<xsl:choose>
<xsl:when test="/html/body">body node exists</xsl:when>
<xsl:otherwise>body node missing</xsl:otherwise>
</xsl:choose>
我在Ruby的工作,利用引入nokogiri我取的元素,看看如果结果是零。
require 'nokogiri'
url = "http://somthing.com/resource"
resp = Nokogiri::XML(open(url))
first_name = resp.xpath("/movies/actors/actor[1]/first-name")
puts "first-name not found" if first_name.nil?
- 1. vba - 查找节点的xpath
- 2. 是否有XPath查找特定模式下的节点?
- 3. 在java中使用xpath查找节点
- 4. 检查节点是否存在和广告是否存在
- 5. C#TreeView检查节点是否存在
- 6. 检查xml节点是否存在?
- 7. 检查节点是否存在于Javascript
- 8. TitanDB:避免搜索两次,以查找是否存在节点
- 9. 使用xPath查找子节点的值
- 10. XPath根据计数查找节点
- 11. C#Xpath节点查找元素
- 12. 使用xpath查找节点的位置
- 13. C#XPath查询找到一个节点
- 14. XPath查询节点
- 15. XPath查询。节点
- 16. RadTreeView的子节点检查节点是否已经存在
- 17. Xpath/XSLT:检查以下兄弟节点是否是特定节点
- 18. PHP:如何检查节点是否存在,如果不使用xpath?
- 19. xpath/xslt:根据子节点查找最后一个节点
- 20. xpath:找到以下节点
- 21. XPath的HTML找到节点
- 22. XSLT:检查节点列表中是否找到节点
- 23. 查找节点是否具有使用simplexml的兄弟节点
- 24. pugixml:找出xpath是否匹配特定的节点/属性
- 25. 检查XPath是否存在元素
- 26. 检查xml是否存在与jQuery不存在的节点?
- 27. XPath - 是否可以查询节点内容?
- 28. 使用XPath检查肥皂信封是否包含子节点
- 29. Xpath的子节点查询
- 30. XPath查询选择节点
也许最好是使用带有强制性元素指示的XML模式?因此请检查文档是否使用它。 – abatishchev 2009-04-20 11:19:48