如何在XML中重用数据

如何在XML中重用数据,xml,xpath,Xml,Xpath,我想创建一组包含特定值的元素。 然后我想命名这个组。最后,我想介绍一下这个群体。 大概是这样的: <catalog type="expensive"> <powder>25</powder> <cream>110</cream> </catalog> <catalog type="normal"> <powder>5</powder> <cream>45<

我想创建一组包含特定值的元素。 然后我想命名这个组。最后,我想介绍一下这个群体。 大概是这样的:

<catalog type="expensive">
  <powder>25</powder>
  <cream>110</cream>
</catalog>

<catalog type="normal">
  <powder>5</powder>
  <cream>45</cream>
</catalog>

<person>
  <name>Jim</name>
  <catalog type="expensive">
    <powder>25</powder>
    <cream>110</cream>
  </catalog>
</person>
<xsl:variable name="catalogType" select="catalogRef/@type" />
<xsl:variable name="catalog" select="/*/catalog[@type=$catalogType]" />

25
110
5.
45
吉姆
25
110

与对每个person元素重复昂贵的目录不同,person元素是否有方法引用已创建的昂贵目录组?

简单的回答是,您在示例中已经这样做了-如果
type
唯一地标识了目录,您可以编写如下内容:

<person> 
  <name>Jim</name> 
  <catalogRef type="expensive" /> 
</person> 
假设当前节点是person元素,并且所有目录定义都位于根目录下的同一XML中