Я хотел бы объединить узлы, такие как:
<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>
Если найдено несколько постов:
сообщение 1
Пост 2
Но они объединяют узлы с разными именами в исходном 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
, которые не годятся.
Любая помощь? Спасибо !!!!