PhpStorm 2021.3 Help

XPath 中的代码检查

本主题列出 了 XPath 中可用的所有 PhpStorm代码检查。

您可以在编辑器 |上切换特定检查或更改其严重性级别。IDE 设置的检查Ctrl+Alt+S页面。

检查

描述

默认严重性

硬编码的命名空间前缀

报告name()函数与包含冒号 ( :) 的字符串的比较。这种用法通常表示比较中的硬编码命名空间前缀。因此,当针对使用同一名称空间的另一个前缀的 XML 运行代码时,代码将中断。

例子:
<xsl:if test="name() = 'xlink:href'">...<xsl:if>

由 XPathView 提供支持 + XSLT 支持

警告 警告

隐式类型转换

报告预定义 XPath 类型STRINGNUMBERBOOLEANNODESET. 帮助编写更能表达类型并防止细微错误的 XSLT 脚本:

例子:
<xsl:if test="foo" />
不一样
<xsl:if test="string(foo)" />

第一个测试检查元素“foo”是否存在(count(foo) > 0);然而,后一个测试仅在元素实际包含任何文本()时才为真string-length(foo) > 0。建议使类型转换更加明确。

使用以下选项配置检查:
  • 启用或禁用某些类型之间的隐式转换

  • 始终报告不会产生实际预期类型的​​显式转换,例如,<xsl:if test="number(foo)" />

  • 使用函数作为写作的快捷方式,忽略从NODESET到的转换。BOOLEANstring()string-length() > 0

由 XPathView 提供支持 + XSLT 支持

警告 警告

冗余类型转换

报告不必要的类型转换。string()当 a 、number()boolean()function 的参数类型已经与函数的返回类型相同或预期的表达式类型为时,类型转换是不必要的any。建议去掉不必要的转换。

由 XPathView 提供支持 + XSLT 支持

警告 警告

未知元素或属性名称

报告在 XPath 表达式中使用但在关联 XML 文件中缺失且未在引用模式中定义的元素或属性的名称。这样的名称通常是拼写错误的结果,否则可能只会在运行时被发现。

例子:
<xsl:template match="h:txtarea" />

如果h绑定到 XHTML 名称空间,则检查会将表达式的这一部分报告match为未知元素名称,因为该元素的正确名称是“textarea”。

由 XPathView 提供支持 + XSLT 支持

警告 警告

索引为 0 的 XPath 谓词

报告0谓词索引中的用法或与函数的比较position()。这种用法几乎总是一个错误,因为在 XPath 中,索引从 开始1而不是0

例子:
//一些元素[位置() = 0]
要么//something[0]

由 XPathView 提供支持 + XSLT 支持

警告 警告

最后修改:2022 年 2 月 11 日