我想合併,如節點:如何使用xslt將節點(使用相同名稱)合併爲單節點輸出?
<sourcePatientInfo>PID-3|1428eab4645a4ce^^^&1.3.6.1.4.1.21367.2008.2.1&ISO</sourcePatientInfo>
<sourcePatientInfo>PID-5|WILKINS^CHARLES^^^</sourcePatientInfo>
<sourcePatientInfo>PID-8|M</sourcePatientInfo>
要這樣的單個節點(不必擔心節點值,我把它處理):
<sourcePatientInfo>
<patientIdentifier>
</patientIdentifier>
<patientName>
</patientName>
<patientSex></patientSex>
</sourcePatientInfo>
但他們合併與源XML名稱不同的節點。現在我有這個:
<xsl:template match="sourcePatientInfo">
<sourcePatientInfo>
<xsl:choose>
<xsl:when test="matches(., 'PID-3')">
<patientIdentifier />
</xsl:when>
<xsl:when test="matches(., 'PID-5')">
<patientName />
</xsl:when>
<xsl:when test="matches(., 'PID-8')">
<patientSex />
</xsl:when>
</xsl:choose>
</sourcePatientInfo>
</xsl:template>
我排除了一些細節,以避免太多的代碼。我得到的是3個單獨的sourcePatientInfo
,這是不好的。
任何幫助?謝謝!!!!
我不太明白 - 「PID-1」,「PID-5」是什麼類型的標識符,即修復,你可以真正使用它們來匹配(就像你在你的例子中做的那樣)或者你會有使用'follow-sibling'或'next()' – 2011-04-27 20:35:18
我實際上假裝使用這些PID-x標識符在,或之間進行選擇,即我的3個可能的子元素之一。 –
2011-04-27 20:46:50