A slight change to your XSL will produce the desired output:
="1.0"="UTF-8"
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/">
<Servicelist>
<xsl:for-each select="data/satellite">
<xsl:variable name="i" select="position()" />
<Satellite>
<SatId><xsl:value-of select="$i" /></SatId>
<SatName><xsl:value-of select="@name" /></SatName>
<LO1Frequency><xsl:value-of select="@lof_lo" /></LO1Frequency>
<LO2Frequency><xsl:value-of select="@lof_hi" /></LO2Frequency>
<BandSwitchFreq><xsl:value-of select="@lof_threshold" /></BandSwitchFreq>
<Longitude><xsl:value-of select="@longitude" /></Longitude>
<SkewOffset>0</SkewOffset>
</Satellite>
</xsl:for-each>
</Servicelist>
</xsl:template>
</xsl:stylesheet>
The
SatId
will be a sequential number starting at
1
.