xpath
Sublime Text插件,使用XPath 1.0简化XML和HTML文件的 cursosre 导航。
详细信息
安装
- 总数 25K
- Win 16K
- Mac 6K
- Linux 3K
8月6日 | 8月5日 | 8月4日 | 8月3日 | 8月2日 | 8月1日 | 7月31日 | 7月30日 | 7月29日 | 7月28日 | 7月27日 | 7月26日 | 7月25日 | 7月24日 | 7月23日 | 7月22日 | 7月21日 | 7月20日 | 7月19日 | 7月18日 | 7月17日 | 7月16日 | 7月15日 | 7月14日 | 7月13日 | 7月12日 | 7月11日 | 7月10日 | 7月9日 | 7月8日 | 7月7日 | 7月6日 | 7月5日 | 7月4日 | 7月3日 | 7月2日 | 7月1日 | 6月30日 | 6月29日 | 6月28日 | 6月27日 | 6月26日 | 6月25日 | 6月24日 | 6月23日 | 6月22日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 7 | 9 | 8 | 5 | 9 | 10 | 3 | 7 | 6 | 5 | 6 | 7 | 9 | 7 | 11 | 8 | 4 | 3 | 3 | 7 | 9 | 8 | 6 | 6 | 7 | 8 | 7 | 6 | 13 | 5 | 4 | 5 | 9 | 5 | 0 | 3 | 5 | 6 | 9 | 5 | 3 | 12 | 10 | 9 | 5 | 3 |
Mac | 1 | 2 | 0 | 0 | 1 | 1 | 1 | 3 | 0 | 0 | 1 | 3 | 3 | 2 | 2 | 3 | 0 | 0 | 4 | 1 | 1 | 4 | 2 | 0 | 4 | 1 | 9 | 7 | 1 | 2 | 1 | 1 | 1 | 0 | 3 | 3 | 1 | 1 | 2 | 2 | 1 | 1 | 3 | 0 | 0 | 0 |
Linux | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 2 | 2 | 2 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 2 | 0 | 0 | 0 | 2 | 0 | 0 | 2 | 0 | 0 |
README
Sublime Text - XPath 插件
特性
- 更新状态栏文本为第一个选择的XPath。
- 将光标处的XPath复制到剪贴板。
- 将选择跳转到相关标签 - 上一个或下一个兄弟,父级或自身。为什么是“自身”,你可能会问?因为还可以选择 opening 标签,关闭标签,两者开合标签,开合标签的属性以及整个标签内容 - 可选包括标签本身。这当然也适用于多重选择。
- 通过XPath 1.0表达式查询XML和(X)HTML文档。
- 带语法高亮和智能自动完成。
- 带自定义
print
函数,可用于将节点集等记录到控制台作为调试辅助。 - 实时显示结果(即您在输入查询的同时,完美地结合了Sublime的其他动作)。(如果需要,可自定义此功能。)
- 将光标移到突出显示的结果。
- 使用
$contexts
变量引用多重上下文节点(光标位置)。 - 执行查询并选择文档中所有相应的节点。(命令面板中有重复运行上一查询和选择所有结果的选项,但请注意,它目前不会保留上下文节点。)
- 带有历史记录,可全局或按文档。
- 可选,在显示文本结果时规范化空白(通过设置)。
- 在设置文件中定义自定义变量。
- 显示XML良好形成性解析错误,并将光标移动到错误发生的位置。
- 整理HTML或“标签糊糊”为有效XML。
设置
请查看默认设置以获取详细信息及默认值。
show_hierarchy_only
- 是否仅在状态栏中显示层级,而不是精确xpath。例如,显示为/Root/Node
而不是/Root/Node[3]
show_all_attributes
- 是否在路径中显示所有属性。如果为false,将使用提供的白名单。case_sensitive
- 当确定标签索引以及一个属性是否与白名单中定义的属性匹配时,是否忽略大小写。当查询xpath时忽略。copy_unique_path_only
- 当有多个选择时,是否仅复制唯一的xpath到剪贴板。attributes_to_include
- 要包含在XPath中的特定属性或命名空间。show_attributes_in_hierarchy
- 当处于层级模式时,是否包含属性。如果show_all_attributes
为false且attributes_to_include
白名单为空,则此设置不起作用。live_mode
- 是否在键入时显示XPath查询的结果。如果为false,则仅在用户按下输入框中的enter键后显示结果。default_namespace_prefix
- 当XML文档包含无前缀的默认命名空间时使用的前缀。例如:`< ` XPath 1.0不支持空白前缀,因此,为了方便,此插件可以为您设置一个。show_namespace_prefixes_from_query
- 当存在空白命名空间前缀(见default_namespace_prefix
)或多个命名空间URI被同一前缀引用时,插件将自动使它们唯一,这样您就可以轻松地在查询中使用它们。如果开启此选项,状态栏和剪贴板中显示的xpath将由本插件直接查询。如果关闭此选项,路径中的元素名称将反映源文档中的元素名称。only_show_xpath_if_saved
- 如果视图不是已修改的,是否仅在状态栏中显示当前xpath。这可以在编辑文档时节省CPU周期(由于不断解析),非常有用。max_results_to_show
- XPath查询要显示的结果的最大数量。设置为<=0以无限制。当结果较多时,很有用,可以加快显示速度。normalize_whitespace_in_preview
- 是否在预览中对文本结果中的空白进行标准化。默认为false
,因为在某些情况下,看到确切的结果很重要。variables
- 自定义变量的字典,当编写XPath查询表达式时可以使用。auto_completion_triggers
- 当输入XPath表达式时,键入这些字符将自动显示自动完成。如果为空,仍然可以手动触发自动完成。intelligent_auto_complete
- 是否从文档中包含智能自动完成建议。goto_element
- 当通过XPath查询选择元素时,光标应移动到它的哪个部分。可能的值有open
- 选择开放标签中的元素名称。close
- 选择关闭标签中的元素名称。names
- 选择开放和关闭标签中的元素名称。open_attributes
- 选择开放标签中的所有属性。content
- 选择元素的内容。entire
- 选择整个元素,即它的开放标签、内容和关闭标签。none
- 不移动光标。
goto_attribute
- 当通过XPath查询选择属性时,光标应移动到它的哪个部分。可能的值有name
- 选择属性的名称。value
- 选择属性值(在引号内)。entire
- 选择属性的名字和值。element
- 使用goto_element
规则选择属性所属的元素。none
- 不移动光标。
sgml_selector
- 用于确定将什么解析为XML,并启用XPath函数的范围选择器。默认为HTML和XML,不包括ASP和PHP等。show_xml_parser_errors
- 在状态栏中显示或在解析文档时遇到的错误。如果您还有其他也显示XML解析/验证错误的插件,则请禁用。
默认没有设置快捷键,但包含了一个示例 sublime-keymap 文件,以显示可用的命令和参数。有关ST3中快捷键的更多信息,请参阅此文档。
演示
安装
推荐安装Sublime Text XPath插件的方式是通过Package Control。Package Control将在您的系统中安装该插件并保持其更新。
- 确保Package Control已安装。
- 在Sublime Text中,打开
首选项
菜单,并选择Package Control
。 - 选择
Package Control: 安装插件
。 - 开始输入
xpath
。当您看到它时,选择它。 - 等待其安装。
- 重新启动Sublime Text,以确保已正确加载所有内容。
- 享受吧!
故障排除
CDATA节点
当处理XML文档时,您可能熟悉文档对象模型(DOM),其中CDATA节点与文本节点分开。XPath将text()
节点视为所有相邻的CDATA和文本节点兄弟一起。如果您确实需要在XPath中处理分离的文本和CDATA节点,您需要确保源文档中的节点之间有一个XML注释分离它们。
示例
<hello><![CDATA[world]]>foobar</hello>
<hello><![CDATA[world]]>foobar</hello>
在第一个示例中的XPath /hello[1]/text()
将返回一个文本节点:worldfoobar
。在第二个示例中,它将返回两个文本节点:world
和foobar
。更多信息可以在此Stack Overflow问答中找到。
命名空间
XPath 1.0没有默认命名空间的概念。因此,如果正在查询的XML文档中的节点定义了默认命名空间,则应将此命名空间映射到XPath查询表达式中的前缀,以便更容易访问。此插件将为您自动完成此操作。有关详细信息,请参阅包含的example_xml_ns.xml
文件。
根元素之前的节点
请注意,由于ElementTree(Python XML模块)的工作方式,位于文档根节点之前的注释、处理指令或文档类型等将无法通过此插件进行导航。
潜在的改进方向
功能请求、错误报告/修复以及可用性建议总是受欢迎。
不分先后,以下是本插件如何变得更加出色的想法
- 优化用户对底层XML文档进行的修改,特别是那些不改变文档结构的修改。目前,每次用户对文档进行微小更改(即在输入时按下的每个字符)都会重新解析整个文档。(虽然连续的快速更改意味着它将中止进行中的解析,以包括最新的更改重新开始。)
- 与优秀的BracketHighlighter插件集成?对于效率来说——因为我们已经存储了每个标签的位置,并且它将克服BH拥有的大标签间距离限制。它还可以在两个插件都已安装的情况下删除一些重复的导航功能。
- 允许在sublime-settings文件中定义自定义XPath函数。
- 允许将变量定义为(绝对)XPath表达式,这些表达式将被评估为节点集合。
贡献者
- Ross Hadden (@rosshadden)
- Keith Hall (@keith-hall)
- @BrutalSimpact