1
给定以下XML文档。XSLT在SSIS XML任务中转换,仅输出XML文档的某些节点
<?xml version="1.0" encoding="UTF-8"?>
<TrainingCenterDatabase
xsi:schemaLocation="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2 http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd"
xmlns:ns5="http://www.garmin.com/xmlschemas/ActivityGoals/v1"
xmlns:ns3="http://www.garmin.com/xmlschemas/ActivityExtension/v2"
xmlns:ns2="http://www.garmin.com/xmlschemas/UserProfile/v2"
xmlns="http://www.garmin.com/xmlschemas/TrainingCenterDatabase/v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns4="http://www.garmin.com/xmlschemas/ProfileExtension/v1">
<Activities>
<Activity Sport="Other">
<Id>2017-01-13T19:26:50.000Z</Id>
<Lap StartTime="2017-01-13T19:26:50.000Z">
<TotalTimeSeconds>600.0</TotalTimeSeconds>
<DistanceMeters>0.0</DistanceMeters>
<Calories>42</Calories>
<AverageHeartRateBpm>
<Value>89</Value>
</AverageHeartRateBpm>
<MaximumHeartRateBpm>
<Value>100</Value>
</MaximumHeartRateBpm>
<Intensity>Active</Intensity>
<TriggerMethod>Manual</TriggerMethod>
<Track>
<Trackpoint>
<Time>2017-01-13T19:26:50.000Z</Time>
<AltitudeMeters>-51.599998474121094</AltitudeMeters>
<HeartRateBpm>
<Value>84</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX/>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:26:51.000Z</Time>
<AltitudeMeters>-51.599998474121094</AltitudeMeters>
<HeartRateBpm>
<Value>84</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX/>
</Extensions>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:26:54.000Z</Time>
<AltitudeMeters>-0.6000000238418579</AltitudeMeters>
<HeartRateBpm>
<Value>84</Value>
</HeartRateBpm>
<Extensions>
<ns3:TPX/>
</Extensions>
</Trackpoint>
</Track>
<Extensions>
<ns3:LX/>
</Extensions>
</Lap>
<Creator xsi:type="Device_t">
<Name>Garmin Forerunner 910XT</Name>
<UnitId>3881635667</UnitId>
<ProductID>1328</ProductID>
<Version>
<VersionMajor>3</VersionMajor>
<VersionMinor>20</VersionMinor>
<BuildMajor>0</BuildMajor>
<BuildMinor>0</BuildMinor>
</Version>
</Creator>
</Activity>
</Activities>
<Author xsi:type="Application_t">
<Name>Garmin Connect API</Name>
<Build>
<Version>
<VersionMajor>16</VersionMajor>
<VersionMinor>23</VersionMinor>
<BuildMajor>0</BuildMajor>
<BuildMinor>0</BuildMinor>
</Version>
</Build>
<LangID>en</LangID>
<PartNumber>006-D2449-00</PartNumber>
</Author>
</TrainingCenterDatabase>
和下面的XSLT。 (我一直在尝试各种不同的版本,但我甚至不能让它出口任何东西)
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:gar="http://www.garmin.com/xmlschemas/TrainingCenterDatabasev2.xsd">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select="gar:TrainingCenterDatabase/gar:Activities/gar:Activity/gar:Track"/>
</xsl:template>
</xsl:stylesheet>
我撕裂了我的头发试图导出XML的某些节点。
编辑。从XML中添加到命名空间中。 编辑。在命名空间和别名中添加。
我想要的是这个。
<Trackpoint>
<Time>2017-01-13T19:26:54.000Z</Time>
<HeartRateBpm>84</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:26:54.000Z</Time>
<HeartRateBpm>84</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:27:54.000Z</Time>
<HeartRateBpm>85</HeartRateBpm>
</Trackpoint>
<Trackpoint>
<Time>2017-01-13T19:28:54.000Z</Time>
<HeartRateBpm>90</HeartRateBpm>
</Trackpoint>
etc.
任何帮助表示赞赏。
看起来像您遇到命名空间的麻烦。 [这个问题]的答案(http://stackoverflow.com/questions/1730875/xslt-transform-xml-with-namespaces)可能会有所帮助。 – teppic
我用名称空间更新了XLST。当我在选择副本中使用“*”时它起作用。但任何时候我都可以改变它来寻找其他任何虚无n。。 –
您需要使用前缀 - 请参阅:http://stackoverflow.com/a/34762628/3016153请注意,XML(以及随后的样式表中)中的大部分名称空间声明都未使用,因此也是多余的。 - 还要注意你显示的输出不是格式良好的XML(没有单个根元素)。 –