当前位置: 首页 > 知识库问答 >
问题:

什么匹配="/"实际上返回?

奚光霁
2023-03-14

如果我们假设有如下所示的XML,那么match=“/”究竟返回什么?据我所知,它返回了一个虚构的顶级节点,它具有<代码>

测验xml

<people>

  <person>
    <name> John </name>
    <age>  50   </age>
  </person>

</people>

共有3个答案

戚俊美
2023-03-14

匹配模式不会“返回”任何内容。将模式应用于节点,它要么匹配该节点,要么不匹配。在模式“/”的情况下,当且仅当节点是文档节点时,它才匹配节点。

(注意:这里的规范之间有一些术语的变化。XPath 2.0和DOM都谈到“文档节点”,它们基本上以相同的方式使用该术语。XPath 1.0有相同的概念,但称其为“根节点”。但一些规范,包括XML规范本身,使用术语“根”来描述最外层的元素。)

文档节点只是在没有与节点对应的有形标记的意义上是虚构的。但是,如果您认为标记是真实的而节点是虚构的,那么您实际上并没有想到XSLT。从XSLT的角度来看,树是真实的,它们是您唯一与之交互的东西。

端木元青
2023-03-14

在XPath中:

/选择文档根(始终是文档元素的父级)

http://www.w3.org/TR/xpath/#location-paths

在XSLT中:

/匹配根节点

http://www.w3.org/TR/xslt/#patterns

对于根节点的定义,您必须参考XPath数据模型,该模型将其定义为:

根节点是树的根。根节点不会出现,除非作为树的根。文档元素的元素节点是根节点的子节点。根节点还有作为子节点的处理指令和注释节点,用于处理发生在序言和文档元素结束之后的指令和注释。

http://www.w3.org/TR/xpath/#root-节点

在XML中,根节点正式定义为:

文档实体充当实体树的根和XML处理器的起点。

http://www.w3.org/TR/REC-xml/#dt-讲解员

蒋茂材
2023-03-14

让我们使用这个XML示例:

<?xml version="1.0" encoding="UTF-8" ?>
<!-- comment1 -->
<?pi1?>
<!-- comment2 -->
<people>
  <person>
    <name>John</name>
    <age>50</age>
  </person>
</people>
<!-- comment3 -->
<?pi2?>
<!-- comment4 -->

让我们创建一个XSLT文件,通知我们已处理XML文件的顶级结构:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">

    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="/">
        <nodes><xsl:apply-templates/></nodes>
    </xsl:template>

    <xsl:template match="comment()">
        <node>comment()</node>
    </xsl:template>

    <xsl:template match="processing-instruction()">
        <node>processing-instruction()</node>
    </xsl:template>

    <xsl:template match="text()">
        <node>text()</node>
    </xsl:template>

    <xsl:template match="node()">
        <node>node()</node>
    </xsl:template>

</xsl:stylesheet>

我们得到:

<nodes>
  <node>comment()</node>
  <node>processing-instruction()</node>
  <node>comment()</node>
  <node>node()</node>
  <node>comment()</node>
  <node>processing-instruction()</node>
  <node>comment()</node>
</nodes>

换句话说:根节点的子节点可以是任意数量的注释和处理指令,以及单个根元素。此级别不能有文本和属性。

 类似资料:
  • 我已经集成了Twilio,它工作得很好。现在我想捕获所有中间消息状态。我指的是发送信息。 我的代码看起来像- 但是返回到statusCallback的输出/响应是不同的,因为- 但是我需要在发送消息时定义的响应 对我来说,字段-num_segments、date_send、direction、error_code、error_message很重要,但我没有收到这些字段。我是否需要使用TWILIO的

  • 问题内容: 我想知道我们如何获得函数返回的值-python return语句实际返回的内容。 考虑以下代码: 调用时,我们获得了价值。 绑定整数对象。 这是什么意思?return语句实际上在这里返回什么?该对象?还是变量名?还是绑定到对象?或者是其他东西? 我们如何获得return语句返回的值? 问题答案: x绑定整数对象5。 是的,是一个持有对整数对象5的引用的变量,该对象也持有对该整数对象的引

  • 问题内容: 在构建RPM软件包的过程中,我必须指定BuildRoot,以后将在%install中使用它来侵害$ RPM_BUILD_ROOT。我一直认为$ RPM_BUILD_ROOT是RPM执行打包的假安装。然后,在使用RPM软件包进行安装时,它将安装到实际位置。例如: 我认为$ RPM_BUILD_ROOT仅用于打包过程,并且在某些方面,当用户执行“ rpm -ivh package.rpm”

  • 我只是第一次涉足iOS开发,我必须做的第一件事就是实现一个自定义容器视图控制器——让我们称之为SideBarViewController——它交换了几种可能的视图控制器中的哪一种它显示的子视图控制器,几乎与标准的Tab Bar Controller一模一样。(它几乎是一个标签栏控制器,但有一个可隐藏的侧菜单,而不是标签栏。) 根据Apple文档中的说明,每当我向容器中添加子ViewControll

  • 问题内容: 我不明白为什么这个简单的正则表达式匹配不返回匹配对象。它返回None我在做什么错? 我完全是newby(昨天开始),想编写一个小程序来搜索文件夹树中的某些文件,打开这些文件并在这些文件中找到某些行,然后将这些行打印到一个新文件中。为了完成第一步,我想匹配os.walk返回的文件名,并使用某种模式进行匹配。因此,现在我正在检查正则表达式的工作方式,并且据我所知,以下代码应该匹配,但是当我

  • commitsync是像JavaDoc声称的那样提交了“在最后一次轮询()上返回的偏移量”(这可能会遗漏一些没有包含在最后一次结果中的分区),还是实际上提交了所有订阅分区的最新位置?考虑到:https://github.com/apache/kafka/blob/2.4.0/clients/src/main/java/org/apache/kafka/clients/consumer/kafkac