【发布时间】:2016-05-23 19:53:41
【问题描述】:
given xml :
<transetx220a1>
<trantypeenum>ST01834</trantypeenum>
<trantypeval>834</trantypeval>
<controlnumber>745029</controlnumber>
<tranversionreleaseenum>v005010X220A1</tranversionreleaseenum>
<tranversionreleaseval>005010X220A1</tranversionreleaseval>
<segmentcount>32</segmentcount>
<bgn>
<purposecodeenum>BGN0100</purposecodeenum>
<purposecodeval>00</purposecodeval>
<referenceid>060743616745029</referenceid>
<creationdate>20160506</creationdate>
<creationtime>0744</creationtime>
<timezoneenum>CT</timezoneenum>
<timezoneval>CT</timezoneval>
<actioncodeenum>RX</actioncodeenum>
<actioncodeval>RX</actioncodeval>
</bgn>
<fileeffdate>
<datetimeperiod>
<dtptypeenum>DTP303</dtptypeenum>
<dtptypeval>303</dtptypeval>
<formatenum>D8</formatenum>
<formatval>D8</formatval>
<value>20160506</value>
</datetimeperiod>
</fileeffdate>
<qtytrancontrols />
<sponsorname>
<partyidenum>P5</partyidenum>
<partyidval>P5</partyidval>
<entityname>Casey McCasland</entityname>
<partyidqualenum>FI</partyidqualenum>
<partyidqualval>FI</partyidqualval>
<identifier>999999999</identifier>
</sponsorname>
<payername>
<partyidenum>IN</partyidenum>
<partyidval>IN</partyidval>
<entityname>New Mexico Health Connections</entityname>
<partyidqualenum>FI</partyidqualenum>
<partyidqualval>FI</partyidqualval>
<identifier>453416923</identifier>
</payername>
<tpa_brokername />
<enrollment>
<eligx220a1>
<ins>
<memberindenum>Y</memberindenum>
<memberindval>Y</memberindval>
<indrelenum>INS0218</indrelenum>
<indrelval>18</indrelval>
<maintenancetypeenum>INS03030</maintenancetypeenum>
<maintenancetypeval>030</maintenancetypeval>
<benefitstatusenum>A</benefitstatusenum>
<benefitstatusval>A</benefitstatusval>
<employmentstatusenum>AC</employmentstatusenum>
<employmentstatusval>AC</employmentstatusval>
</ins>
<subscribernumber>
<reftypeenum>REF010F</reftypeenum>
<reftypeval>0F</reftypeval>
<value>P700060195</value>
</subscribernumber>
<policynumber>
<reftypeenum>REF011L</reftypeenum>
<reftypeval>1L</reftypeval>
<value>P900010001</value>
</policynumber>
<supplementalid>
<referenceid>
<reftypeenum>REF0117</reftypeenum>
<reftypeval>17</reftypeval>
<value>001</value>
</referenceid>
</supplementalid>
<memberleveldates>
<datetimeperiod>
<dtptypeenum>DTP356</dtptypeenum>
<dtptypeval>356</dtptypeval>
<formatenum>D8</formatenum>
<formatval>D8</formatval>
<value>20160201</value>
</datetimeperiod>
</memberleveldates>
<memb>
<affiliatename>
<entityidenum>IL</entityidenum>
<entityidval>IL</entityidval>
<entitytypeenum>NM1021</entitytypeenum>
<entitytypeval>1</entitytypeval>
<lastname>Mcsasasas</lastname>
<firstname>Casss</firstname>
<idqualifierenum>NM10834</idqualifierenum>
<idqualifierval>34</idqualifierval>
<identifier>999999999</identifier>
</affiliatename>
<affiliateaddress>
<locationcodeenum>CY</locationcodeenum>
<locationcodeval>CY</locationcodeval>
<locationcodeidentifier>CURRY</locationcodeidentifier>
<addrline1>149 sssssss AVE</addrline1>
<city>CLOVIS</city>
<state>NM</state>
<zip>88101</zip>
</affiliateaddress>
<affiliatecontact>
<contact>
<comm>
<communication>
<commtypeenum>HP</commtypeenum>
<commtypeval>HP</commtypeval>
<value>5121212482</value>
</communication>
<communication>
<commtypeenum>EM</commtypeenum>
<commtypeval>EM</commtypeval>
<value>tfsasasl@farsasassant.com</value>
</communication>
</comm>
<functioncodeenum>IP</functioncodeenum>
<functioncodeval>IP</functioncodeval>
</contact>
</affiliatecontact>
</memb>
<membdmg>
<birthdateformatenum>D8</birthdateformatenum>
<birthdateformatval>D8</birthdateformatval>
<birthdate>19611111</birthdate>
<genderenum>M</genderenum>
<genderval>M</genderval>
<maritalstatusenum>B</maritalstatusenum>
<maritalstatusval>B</maritalstatusval>
</membdmg>
<empclass />
<amtpolicy />
<hlh>
<healthcodeenum>N</healthcodeenum>
<healthcodeval>N</healthcodeval>
</hlh>
<lui />
<school />
<responsibleperson />
<dsb />
<healthcov>
<healthcoverage>
<hd>
<maintenancetypecodeenum>HD01030</maintenancetypecodeenum>
<maintenancetypecodeval>030</maintenancetypecodeval>
<insurancelineenum>HLT</insurancelineenum>
<insurancelineval>HLT</insurancelineval>
<coveragelevelenum>EMP</coveragelevelenum>
<coveragelevelval>EMP</coveragelevelval>
</hd>
<dtpcoverage>
<datetimeperiod>
<dtptypeenum>DTP348</dtptypeenum>
<dtptypeval>348</dtptypeval>
<formatenum>D8</formatenum>
<formatval>D8</formatval>
<value>20160201</value>
</datetimeperiod>
</dtpcoverage>
<policynumber>
<referenceid>
<reftypeenum>CE</reftypeenum>
<reftypeval>CE</reftypeval>
<value>93091NM001001000</value>
</referenceid>
</policynumber>
<provider>
<memberpcp>
<sequentialnumber>1</sequentialnumber>
<provider>
<affiliatename>
<entityidenum>P3</entityidenum>
<entityidval>P3</entityidval>
<entitytypeenum>NM1021</entitytypeenum>
<entitytypeval>1</entitytypeval>
<idqualifierenum>XX</idqualifierenum>
<idqualifierval>XX</idqualifierval>
<identifier>1437296522</identifier>
</affiliatename>
<affiliateaddress>
<addrline1>702 N 13th St</addrline1>
<city>Artesia</city>
<state>NM</state>
<zip>88210</zip>
</affiliateaddress>
</provider>
</memberpcp>
</provider>
</healthcoverage>
</healthcov>
<lsloopheader>Item2700</lsloopheader>
<report>
<memberreport>
<sequentialnumber>1</sequentialnumber>
<reportcategory>
<partyidenum>N10175</partyidenum>
<partyidval>75</partyidval>
<entityname>PRE AMT TOT</entityname>
</reportcategory>
<refcategory>
<reftypeenum>REF019X</reftypeenum>
<reftypeval>9X</reftypeval>
<value>414.31</value>
</refcategory>
<reportcategorydate>
<dtptypeenum>DTP007</dtptypeenum>
<dtptypeval>007</dtptypeval>
<formatenum>D8</formatenum>
<formatval>D8</formatval>
<value>20150101</value>
</reportcategorydate>
</memberreport>
</report>
<lelooptrailer>Item2700</lelooptrailer>
</eligx220a1>
</enrollment>
</transetx220a1>
尝试过的 XSL 代码:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="/transetx220a1/sponsorname/entityname">
<div style="font-weight:bold;color:white;background-color: brown">
<xsl:value-of select="../entityname"/>
</div>
<div>
<div>
<span style="font-weight:bold">Date Format:</span>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/birthdateformatval, 'D8')">
Date Expressed in Format CCYYMMDD
</xsl:if>
</div>
<div>
<span style="font-weight:bold">Date of Birth:</span>
<xsl:value-of select="../../enrollment/eligx220a1/membdmg/birthdate"/>
</div>
<div>
<span style="font-weight:bold">Gender:</span>
<xsl:choose>
<xsl:when test="contains(../../enrollment/eligx220a1/membdmg/genderval, 'M')">
Male
</xsl:when>
<xsl:otherwise>
Female
</xsl:otherwise>
</xsl:choose>
</div>
<div>
<span style="font-weight:bold">Relationship:</span>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'B')">
Registered Domestic Partner
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'D')">
Divorced
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'I')">
Single
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'M')">
Married
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'S')">
Seperated
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'U')">
Unmarried
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'W')">
Widowed
</xsl:if>
<xsl:if test="contains(../../enrollment/eligx220a1/membdmg/maritalstatusval, 'X')">
Legally Seperated
</xsl:if>
</div>
</div>
<div style="font-weight:bold;">
<xsl:value-of select="../../enrollment/eligx220a1/memb/affiliatecontact/contact/comm"/>
</div>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
给出的输出:
<html>
<body>
<div style="font-weight:bold;color:white;background-color: brown">Casey McCasland</div>
<div>
<div><span style="font-weight:bold">Date Format:</span>
Date Expressed in Format CCYYMMDD
</div>
<div><span style="font-weight:bold">Date of Birth:</span>19611111
</div>
<div><span style="font-weight:bold">Gender:</span>
Male
</div>
<div><span style="font-weight:bold">Relationship:</span>
Registered Domestic Partner
</div>
</div>
<div style="font-weight:bold;">
HP
HP
5121212482
EM
EM
tfsasasl@farsasassant.com
</div>
</body>
</html>
期望的输出:
<html>
<body>
<div style="font-weight:bold;color:white;background-color: brown">Casey McCasland</div>
<div>
<div><span style="font-weight:bold">Date Format:</span>
Date Expressed in Format CCYYMMDD
</div>
<div><span style="font-weight:bold">Date of Birth:</span>19611111
</div>
<div><span style="font-weight:bold">Gender:</span>
Male
</div>
<div><span style="font-weight:bold">Relationship:</span>
Registered Domestic Partner
</div>
</div>
<div style="font-weight:bold;">
<div>
HP
HP
5121212482
</div>
<div>
EM
EM
tfsasasl@farsasassant.com
</div>
</div>
</body>
</html>
我想在不同的 div 中显示 comm 值并在单独的行中显示它。任何帮助表示赞赏。我正在尝试使用 XML 代码并嵌入 XSLT 代码并将其转换为 html 代码并将其显示在页面中。这背后的基本思想是使用赞助商名称的 Xpath“Casey McCasland”以单独的行显示所有通信细节。
【问题讨论】:
-
那不是有效的 XML。关闭
</hi>在哪里?另外,请完全按照您想要的方式显示所需的输出。您是否正在尝试生成可以使用 CSS 或其他方式设置样式的 HTML? “控制样式”是什么意思? -
我刚刚提到了一个示例 xml。实际的 xml 太大了。
-
无论如何,您都应该提供有效的样本数据。另外请回答我的其余问题。如果没有这些细节,您的问题将无法回答。
-
我的想法是......给定数据的成员ID。 (xml 标记中的一个值)。我必须检索与该成员 id 相关的所有值。例如,在上面我提到的示例 xml 中,如果“anupam”是我的会员 ID,而 1,2 是我的详细信息。使用 anupam 的 xpath,我应该能够在不同的行中显示 1 和 2。
-
XML 与“显示”无关。请说明您要在其中显示数据的上下文。
标签: xml loops xslt nested styles