我的 input.xml 如下:
<root>
<Property>
<info>
<Name>A</Name>
<Value>1000</Value>
</info>
<info>
<Name>B</Name>
<Value>2000</Value>
</info>
<info>
<Name>C</Name>
<Value>3000</Value>
</info>
</Property>
</root>
所以在这里当我说 -
<xsl:apply-templates select="//Property/info">
树会怎么样?我可以认为它如下所示?
<Property>
<info>
<Name>A</Name>
<Value>1000</Value>
</info>
<info>
<Name>B</Name>
<Value>2000</Value>
</info>
<info>
<Name>C</Name>
<Value>3000</Value>
</info>
</Property>
当匹配模板时,我可以将 Property 元素作为树中的根元素吗?(我认为是的,因为我执行它并认为单独的树将在内存中的某个地方创建 - 这是真的吗?(请解释)
<xsl:template match="Property/info"/>
这里我的实际问题是-模板是应用于缓冲区中的树(将其作为主树)还是应用于原始源树?
a)如果事情是在缓冲树上计算/应用的,当我说的时候,我们应该不能正确检索根元素
<xsl:copy-of select="../../*"/>
因为缓冲树没有根元素并且处理器不知道根元素。[但实际情况如何?]
b) 如果模板应用于原始源代码树,那么
<xsl:template match="Property/info"/>
应该不行吧?(因为我们应该以这种方式给予:
<xsl:template match="root/Property/info"/>
或者
<xsl:template match="//Property/info"/>
但没有提到它的工作原理。这怎么可能?)