使用XSLT提取和更新XML

时间:2018-05-17 11:32:17

标签: xml xslt xslt-1.0

我有一个像这样的XML,我想通过检查xml底部的值来替换其中一个元素。

<canvas baseChart
    [datasets]="spiderChartData"
    [labels]="spiderChartLabels"
    [chartType]="spiderChartType"
    [options]="spiderChartOptions"
    [colors]="spiderChartColours"
    (chartHover)="chartHovered($event)"
    (chartClick)="chartClicked($event)">
</canvas>

如何在<?xml version="1.0"?> <Company> <Employee> <FirstName>Tanmay</FirstName> <LastName>Patil</LastName> <ContactNo>1234567890</ContactNo> <Email>tanmaypatil@xyz.com</Email> <AddressRef>0123321</AddressRef> <AllAddressRef> <AddressRef> <UniqueID>0123321</UniqueID> <Streetno>6</Streetno> <Street>Athol Park</Street> <State>WA</Street> <Country>AU</Street> </AddressRef> </AllAddressRef> </Employee> </Company>

中替换与其唯一标识符相关联的<AddressRef>
<AllAddressRef>

我正在使用XSLT 1.0。

1 个答案:

答案 0 :(得分:1)

您可以使用//来搜索整个文档,谓词[]只选择符合某些条件的元素。

示例:

<xsl:template match="AddressRef">
  <xsl:variable name="address" select="//AllAddressRef/AddressRef[UniqueID = current()]" />
  <Address>
    <xsl:copy-of select="$address/*[not(self::UniqueID)]" />
  </Address>
</xsl:template>