原始XML:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:voc="urn:hl7-org:v3/voc" xmlns:sdtc="urn:hl7-org:sdtc"
xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<participant typeCode="LOC">
<participantRole classCode="SDLOC">
<id extension="00000000-0000-0000-0000-000000000000" root="1.0"/>
<addr nullFlavor="UNK"/>
<playingEntity>
<name/>
</playingEntity>
</participantRole>
</participant>
<Noparticipant typeCode="LOC">
<NoparticipantRole classCode="SDLOC">
<id extension="00000000-0000-0000-0000-000000000000" root="1.0"/>
<addr nullFlavor="UNK"/>
<NoplayingEntity>
<name/>
</NoplayingEntity>
</NoparticipantRole>
</Noparticipant>
</Document>
输出XML应为:
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns:voc="urn:hl7-org:v3/voc" xmlns:sdtc="urn:hl7-org:sdtc"
xmlns="urn:hl7-org:v3" xmlns:mif="urn:hl7-org:v3/mif"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<participant typeCode="LOC">
<participantRole classCode="SDLOC">
<id extension="00000000-0000-0000-0000-000000000000" root="1.0"/>
<addr nullFlavor="UNK"/>
<playingEntity>
<name>UNK</name>
</playingEntity>
</participantRole>
</participant>
<Noparticipant typeCode="LOC">
<NoparticipantRole classCode="SDLOC">
<id extension="00000000-0000-0000-0000-000000000000" root="1.0"/>
<addr nullFlavor="UNK"/>
<NoplayingEntity>
<name/>
</NoplayingEntity>
</NoparticipantRole>
</Noparticipant>
</Document>
所以基本上我们只为自动关闭playEntity父类名元素的空名元素添加UNK值,并且我们不会打扰/更改自关闭空名NoplayingEntity父类代码。 XML也有一些名称空间声明,因此我无法获得此输出。
答案 0 :(得分:0)
试试这个......
<xsl:stylesheet version="1.0" xmlns:hl7="urn:hl7-org:v3" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="hl7:playingEntity/hl7:name[not(node())]">
<xsl:copy>UNK</xsl:copy>
</xsl:template>
</xsl:stylesheet>