将带有嵌套节点的 xml 导入 Access(并需要将 xml 转换为带有 xsl 的 'flat' 结构)
Importing xml with nested nodes into Access (and needing to transform the xml into a 'flat' structure with xsl)
拼命尝试将一些数据导入到 Access 中,但失败了,这些数据由各种嵌套节点组成,导入时被放入单独的 table 中,而我只希望拥有一个。
我只是想让 Activity table 和嵌套节点中的所有数据都在这个父 table.
中
我试过调整以前类似问题的一些代码,但我的尝试似乎没有希望,因为它甚至没有从 'Activity' table 中提取任何信息,但是它创建了 [= 'CstActivity' table 中的 61=] 字段,我想我最终可以达到目的,以便在 table 之间进行连接/link。唯一的问题是它实际上并没有用相关的 ID 填充它!
但理想情况下,我只想转换数据,以便导入仅包含 'Activity' 节点上相关行中嵌套节点中的所有内容。
xml待导入:
<?xml version="1.0" encoding="utf-8"?>
<ns:HCDSExtract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<ns:MessageHeader>
<ns:OrgSubmittingID>RRK</ns:OrgSubmittingID>
<ns:FinYr>FY2018-19</ns:FinYr>
<ns:PeriodStartDate>2018-05-01</ns:PeriodStartDate>
<ns:PeriodEndDate>2018-05-31</ns:PeriodEndDate>
<ns:CreateDateTime>2018-03-28T18:25:04</ns:CreateDateTime>
<ns:FeedType>OP</ns:FeedType>
<ns:NoOfActivityRecords>10</ns:NoOfActivityRecords>
<ns:TotalCosts>100.000</ns:TotalCosts>
</ns:MessageHeader>
<ns:MessageBody>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503898066984</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503898066984</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-11T14:29:00</ns:AppDte>
<ns:Tfc>172</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true" />
<ns:PatOrgId xsi:nil="true" />
<ns:CstActivity>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1440</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF005</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
</ns:Activity>
</ns:MessageBody>
</ns:HCDSExtract>
我的 xsl 文件:
<xsl:stylesheet version="1.0" xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<dataroot>
<xsl:apply-templates select="@*|node()"/>
</dataroot>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:Activity">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="ns:CstActivity">
<ns:CstActivity>
<ns:AttID><xsl:value-of select="../ns:AttID"/></ns:AttID>
<xsl:apply-templates select="@*|node()"/>
</ns:CstActivity>
</xsl:template>
</xsl:stylesheet>
任何帮助将不胜感激。提前谢谢你。
编辑:
我的新 xsl 如下:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:CstActivity"><xsl:apply-templates /></xsl:template>
<xsl:template match="ns:Resource"><xsl:apply-templates /></xsl:template>
</xsl:stylesheet>
所以我最新的 xsl 给出了如下输出:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897890061</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>02</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897890061</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-28T17:14:00</ns:AppDte>
<ns:Tfc>306</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>DIM007</ns:ActCstID>
<ns:ActCnt>3</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
这很好,但是对于部分
<ns:ActCstID>DIM007</ns:ActCstID>
<ns:ActCnt>3</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
父节点中的每个条目可能有很多这 4 位信息....我希望父节点中的每个相关记录对每个不同的子节点重复。我希望这是有道理的。
如此多的期望输出 xml 将是:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897890061</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>02</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897890061</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-28T17:14:00</ns:AppDte>
<ns:Tfc>306</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>DIM007</ns:ActCstID>
<ns:ActCnt>3</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897890061</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>02</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897890061</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-28T17:14:00</ns:AppDte>
<ns:Tfc>306</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>MID127</ns:ActCstID>
<ns:ActCnt>2</ns:ActCnt>
<ns:ResCstID>CPD060</ns:ResCstID>
<ns:TotCst>12.05000000</ns:TotCst>
</ns:Activity>
非常感谢任何帮助!
最新编辑以概述希望的输出。很抱歉,我可能没有给出一个很好的示例输入 xml 来解决问题,但希望输入/输出 xml 能更清楚地解释我在寻找什么。
输入xml:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true" />
<ns:PatOrgId xsi:nil="true" />
<ns:CstActivity>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.12799014</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00622135</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>6.55181258</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.08211900</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF027</ns:ResCstID>
<ns:TotCst>0.04333875</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>18.95493831</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
<ns:CstActivity>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.00000148</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00002230</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>-0.00000221</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.00017128</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>0.16603542</ns:TotCst>
希望输出 xml:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>THR001</ns:ActCstID>
<ns:ActCnt>2</ns:ActCnt>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Activity>
所以基本上,对于下面字段的每个变体,都会引入旧的父节点,因此每个 CDSID 都有很多行,而不仅仅是一行。
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
再次感谢您的帮助。
考虑这个修改后的 XSLT,它沿着树向下走(与身份转换相反)以仅解析 ns:Activity 节点及其子节点和孙节点。此外,脚本避免重写它们的节点,因为在 MS Access 的 ImportXML 中,每个不同的嵌套元素都成为它自己的 table.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/ns:HCDSExtract">
<dataroot>
<xsl:apply-templates select="ns:MessageBody"/>
</dataroot>
</xsl:template>
<xsl:template match="ns:MessageBody">
<xsl:apply-templates select="ns:Activity"/>
</xsl:template>
<xsl:template match="ns:Activity">
<xsl:copy>
<xsl:copy-of select="*[not(*)]"/>
<xsl:copy-of select="*/*[not(*)]"/>
<xsl:copy-of select="*/*/*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
这里有一个扁平化某些层次结构的示例,例如:
<countries>
<country>
<name>USA</name>
<state>Alabama</state>
<state>Colorado</state>
</country>
</countries>
此样式表:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="countries">
<states>
<xsl:apply-templates select="country/state" mode="uprise"/>
</states>
</xsl:template>
<xsl:template match="state"/>
<xsl:template match="state" mode="uprise">
<xsl:copy>
<name>
<xsl:value-of select="."/>
</name>
<xsl:apply-templates select=".."/>
</xsl:copy>
</xsl:template>
<xsl:template match="country/name">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
输出:
<states>
<state>
<name>Alabama</name>
<country>USA</country>
</state>
<state>
<name>Colorado</name>
<country>USA</country>
</state>
</states>
请注意:对于扁平化,您以叶子为目标,然后在层次结构中向上生成输出。在这种情况下,我使用的是覆盖身份模板模式,因此有一种模式可以处理叶子,另一种模式(默认)可以停止进程,以免产生无限循环。
编辑:因为您似乎无法遵循这个逻辑,我将向您展示一个样式表,只是更改名称以匹配您的输入样本(也更正为格式正确).
本次输入:
<ns:HCDSExtract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<ns:MessageHeader>
<ns:OrgSubmittingID>RRK</ns:OrgSubmittingID>
<ns:FinYr>FY2018-19</ns:FinYr>
<ns:PeriodStartDate>2018-05-01</ns:PeriodStartDate>
<ns:PeriodEndDate>2018-05-31</ns:PeriodEndDate>
<ns:CreateDateTime>2018-03-28T18:25:04</ns:CreateDateTime>
<ns:FeedType>OP</ns:FeedType>
<ns:NoOfActivityRecords>10</ns:NoOfActivityRecords>
<ns:TotalCosts>100.000</ns:TotalCosts>
</ns:MessageHeader>
<ns:MessageBody>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:CstActivity>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.12799014</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00622135</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>6.55181258</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.08211900</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF027</ns:ResCstID>
<ns:TotCst>0.04333875</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>18.95493831</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
<ns:CstActivity>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.00000148</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00002230</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>-0.00000221</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.00017128</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>0.16603542</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
</ns:Activity>
</ns:MessageBody>
</ns:HCDSExtract>
使用此样式表:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:MessageBody">
<xsl:copy>
<xsl:apply-templates
select="ns:Activity/ns:CstActivity/ns:Resource" mode="uprise"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:Resource|ns:CstActivity|ns:MessageHeader"/>
<xsl:template match="ns:Resource" mode="uprise">
<ns:Activity>
<xsl:apply-templates select="../../*|../*"/>
<xsl:apply-templates/>
</ns:Activity>
</xsl:template>
</xsl:stylesheet>
输出:
<ns:HCDSExtract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<ns:MessageBody>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.12799014</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00622135</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>6.55181258</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.08211900</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF027</ns:ResCstID>
<ns:TotCst>0.04333875</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>18.95493831</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.00000148</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00002230</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>-0.00000221</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.00017128</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>0.16603542</ns:TotCst>
</ns:Activity>
</ns:MessageBody>
</ns:HCDSExtract>
检查一下here
拼命尝试将一些数据导入到 Access 中,但失败了,这些数据由各种嵌套节点组成,导入时被放入单独的 table 中,而我只希望拥有一个。
我只是想让 Activity table 和嵌套节点中的所有数据都在这个父 table.
中我试过调整以前类似问题的一些代码,但我的尝试似乎没有希望,因为它甚至没有从 'Activity' table 中提取任何信息,但是它创建了 [= 'CstActivity' table 中的 61=] 字段,我想我最终可以达到目的,以便在 table 之间进行连接/link。唯一的问题是它实际上并没有用相关的 ID 填充它!
但理想情况下,我只想转换数据,以便导入仅包含 'Activity' 节点上相关行中嵌套节点中的所有内容。
xml待导入:
<?xml version="1.0" encoding="utf-8"?>
<ns:HCDSExtract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<ns:MessageHeader>
<ns:OrgSubmittingID>RRK</ns:OrgSubmittingID>
<ns:FinYr>FY2018-19</ns:FinYr>
<ns:PeriodStartDate>2018-05-01</ns:PeriodStartDate>
<ns:PeriodEndDate>2018-05-31</ns:PeriodEndDate>
<ns:CreateDateTime>2018-03-28T18:25:04</ns:CreateDateTime>
<ns:FeedType>OP</ns:FeedType>
<ns:NoOfActivityRecords>10</ns:NoOfActivityRecords>
<ns:TotalCosts>100.000</ns:TotalCosts>
</ns:MessageHeader>
<ns:MessageBody>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503898066984</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503898066984</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-11T14:29:00</ns:AppDte>
<ns:Tfc>172</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true" />
<ns:PatOrgId xsi:nil="true" />
<ns:CstActivity>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1440</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF005</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
</ns:Activity>
</ns:MessageBody>
</ns:HCDSExtract>
我的 xsl 文件:
<xsl:stylesheet version="1.0" xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<dataroot>
<xsl:apply-templates select="@*|node()"/>
</dataroot>
</xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:Activity">
<xsl:apply-templates select="@*|node()"/>
</xsl:template>
<xsl:template match="ns:CstActivity">
<ns:CstActivity>
<ns:AttID><xsl:value-of select="../ns:AttID"/></ns:AttID>
<xsl:apply-templates select="@*|node()"/>
</ns:CstActivity>
</xsl:template>
</xsl:stylesheet>
任何帮助将不胜感激。提前谢谢你。
编辑:
我的新 xsl 如下:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:CstActivity"><xsl:apply-templates /></xsl:template>
<xsl:template match="ns:Resource"><xsl:apply-templates /></xsl:template>
</xsl:stylesheet>
所以我最新的 xsl 给出了如下输出:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897890061</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>02</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897890061</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-28T17:14:00</ns:AppDte>
<ns:Tfc>306</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>DIM007</ns:ActCstID>
<ns:ActCnt>3</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
这很好,但是对于部分
<ns:ActCstID>DIM007</ns:ActCstID>
<ns:ActCnt>3</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
父节点中的每个条目可能有很多这 4 位信息....我希望父节点中的每个相关记录对每个不同的子节点重复。我希望这是有道理的。
如此多的期望输出 xml 将是:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897890061</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>02</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897890061</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-28T17:14:00</ns:AppDte>
<ns:Tfc>306</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>DIM007</ns:ActCstID>
<ns:ActCnt>3</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>10.00000000</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897890061</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>02</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897890061</ns:AttID>
<ns:HRG>WF01A</ns:HRG>
<ns:AppDte>2018-05-28T17:14:00</ns:AppDte>
<ns:Tfc>306</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>MID127</ns:ActCstID>
<ns:ActCnt>2</ns:ActCnt>
<ns:ResCstID>CPD060</ns:ResCstID>
<ns:TotCst>12.05000000</ns:TotCst>
</ns:Activity>
非常感谢任何帮助!
最新编辑以概述希望的输出。很抱歉,我可能没有给出一个很好的示例输入 xml 来解决问题,但希望输入/输出 xml 能更清楚地解释我在寻找什么。
输入xml:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true" />
<ns:PatOrgId xsi:nil="true" />
<ns:CstActivity>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.12799014</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00622135</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>6.55181258</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.08211900</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF027</ns:ResCstID>
<ns:TotCst>0.04333875</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>18.95493831</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
<ns:CstActivity>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.00000148</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00002230</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>-0.00000221</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.00017128</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>0.16603542</ns:TotCst>
希望输出 xml:
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>THR001</ns:ActCstID>
<ns:ActCnt>2</ns:ActCnt>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Activity>
所以基本上,对于下面字段的每个变体,都会引入旧的父节点,因此每个 CDSID 都有很多行,而不仅仅是一行。
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
再次感谢您的帮助。
考虑这个修改后的 XSLT,它沿着树向下走(与身份转换相反)以仅解析 ns:Activity 节点及其子节点和孙节点。此外,脚本避免重写它们的节点,因为在 MS Access 的 ImportXML 中,每个不同的嵌套元素都成为它自己的 table.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/ns:HCDSExtract">
<dataroot>
<xsl:apply-templates select="ns:MessageBody"/>
</dataroot>
</xsl:template>
<xsl:template match="ns:MessageBody">
<xsl:apply-templates select="ns:Activity"/>
</xsl:template>
<xsl:template match="ns:Activity">
<xsl:copy>
<xsl:copy-of select="*[not(*)]"/>
<xsl:copy-of select="*/*[not(*)]"/>
<xsl:copy-of select="*/*/*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
这里有一个扁平化某些层次结构的示例,例如:
<countries>
<country>
<name>USA</name>
<state>Alabama</state>
<state>Colorado</state>
</country>
</countries>
此样式表:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="countries">
<states>
<xsl:apply-templates select="country/state" mode="uprise"/>
</states>
</xsl:template>
<xsl:template match="state"/>
<xsl:template match="state" mode="uprise">
<xsl:copy>
<name>
<xsl:value-of select="."/>
</name>
<xsl:apply-templates select=".."/>
</xsl:copy>
</xsl:template>
<xsl:template match="country/name">
<xsl:apply-templates/>
</xsl:template>
</xsl:stylesheet>
输出:
<states>
<state>
<name>Alabama</name>
<country>USA</country>
</state>
<state>
<name>Colorado</name>
<country>USA</country>
</state>
</states>
请注意:对于扁平化,您以叶子为目标,然后在层次结构中向上生成输出。在这种情况下,我使用的是覆盖身份模板模式,因此有一种模式可以处理叶子,另一种模式(默认)可以停止进程,以免产生无限循环。
编辑:因为您似乎无法遵循这个逻辑,我将向您展示一个样式表,只是更改名称以匹配您的输入样本(也更正为格式正确).
本次输入:
<ns:HCDSExtract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<ns:MessageHeader>
<ns:OrgSubmittingID>RRK</ns:OrgSubmittingID>
<ns:FinYr>FY2018-19</ns:FinYr>
<ns:PeriodStartDate>2018-05-01</ns:PeriodStartDate>
<ns:PeriodEndDate>2018-05-31</ns:PeriodEndDate>
<ns:CreateDateTime>2018-03-28T18:25:04</ns:CreateDateTime>
<ns:FeedType>OP</ns:FeedType>
<ns:NoOfActivityRecords>10</ns:NoOfActivityRecords>
<ns:TotalCosts>100.000</ns:TotalCosts>
</ns:MessageHeader>
<ns:MessageBody>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:CstActivity>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.12799014</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00622135</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>6.55181258</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.08211900</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF027</ns:ResCstID>
<ns:TotCst>0.04333875</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>18.95493831</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
<ns:CstActivity>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:Resource>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.00000148</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00002230</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>-0.00000221</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.00017128</ns:TotCst>
</ns:Resource>
<ns:Resource>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>0.16603542</ns:TotCst>
</ns:Resource>
</ns:CstActivity>
</ns:Activity>
</ns:MessageBody>
</ns:HCDSExtract>
使用此样式表:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:MessageBody">
<xsl:copy>
<xsl:apply-templates
select="ns:Activity/ns:CstActivity/ns:Resource" mode="uprise"/>
</xsl:copy>
</xsl:template>
<xsl:template match="ns:Resource|ns:CstActivity|ns:MessageHeader"/>
<xsl:template match="ns:Resource" mode="uprise">
<ns:Activity>
<xsl:apply-templates select="../../*|../*"/>
<xsl:apply-templates/>
</ns:Activity>
</xsl:template>
</xsl:stylesheet>
输出:
<ns:HCDSExtract xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ns="http://Improvement.nhs.uk/HealthcareCostingDataSet/v03-1819">
<ns:MessageBody>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.01711470</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF004</ns:ResCstID>
<ns:TotCst>0.00005506</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.12799014</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00622135</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>6.55181258</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.08211900</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF027</ns:ResCstID>
<ns:TotCst>0.04333875</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>OUT001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>18.95493831</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF002</ns:ResCstID>
<ns:TotCst>0.00000124</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF011</ns:ResCstID>
<ns:TotCst>0.00000148</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF022</ns:ResCstID>
<ns:TotCst>0.00002230</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF023</ns:ResCstID>
<ns:TotCst>-0.00000221</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CPF024</ns:ResCstID>
<ns:TotCst>0.00017128</ns:TotCst>
</ns:Activity>
<ns:Activity>
<ns:OrgId>RRK</ns:OrgId>
<ns:CDSID>503897986301</ns:CDSID>
<ns:NHSNo>1111111111</ns:NHSNo>
<ns:NhsSt>01</ns:NhsSt>
<ns:Postcd>RD15 2AD</ns:Postcd>
<ns:DoB>1967-04-01</ns:DoB>
<ns:Gendr>1</ns:Gendr>
<ns:Pod>NCL</ns:Pod>
<ns:AttID>503897986301</ns:AttID>
<ns:HRG>WF01B</ns:HRG>
<ns:AppDte>2018-05-02T10:19:00</ns:AppDte>
<ns:Tfc>191</ns:Tfc>
<ns:ConCode>C0000000</ns:ConCode>
<ns:PathId xsi:nil="true"/>
<ns:PatOrgId xsi:nil="true"/>
<ns:ActCstID>SUP001</ns:ActCstID>
<ns:ActCnt>1</ns:ActCnt>
<ns:ResCstID>CSC004</ns:ResCstID>
<ns:TotCst>0.16603542</ns:TotCst>
</ns:Activity>
</ns:MessageBody>
</ns:HCDSExtract>
检查一下here