Subject: RE: How to delete empty element tag from output XML? From: "Guangzu Wang (Houston)" <Guangzu.Wang@xxxxxxxxxxxxxx> Date: Wed, 25 Oct 2000 12:35:25 -0400 |
Thank you Michael for your help. I try your suggestion but still have trouble. Maybe my question is not clear before. I give a scenario below. Input XML: <?xml version="1.0" encoding="UTF-8"?> <test> <people> <N1>Tom</N1> <N2>Hopkins</N2> <N3 /> <Sex>Male</Sex> </people> <people> <N1>Amy</N1> <N2>Smith</N2> <N3>R</N3> <Sex /> </people> </test> Expected output XML: <?xml version="1.0" encoding="UTF-8"?> <NameList> <My_Favorite> <Star> <FirstName>Tom</FirstName> <LastName>Hopkins</LastName> <MI>N/A</MI> <Gender>Male</Gender> </Star> <Star> <FirstName>Amy</FirstName> <LastName>Smith</LastName> <MI>R</MI> </Star> </My_Favorite> </NameList> You may notice 1). if <Sex> is empty as in Amy case, don't print <Gender /> 2). if <N3> is empty as in Tom case, I need a output <MI>N/A</MI>, i.e. a default of "N/A". 3). the structure and tag of output different with input. As I mentioned before, the last thing I want to do is use <xsl:if> in XSLT stylesheet to compare every segment because it's too tedious given the fact I have numberous tags need to process. Thanks again. have a good day. Guangzu -----Original Message----- From: Kay Michael [mailto:Michael.Kay@xxxxxxx] Sent: Wednesday, October 25, 2000 4:32 AM To: 'xsl-list@xxxxxxxxxxxxxxxx' Subject: RE: How to delete empty element tag from output XML? > I use XSLT to convert XML to XML and HTML. I need to delete > the tag when > there are no value in the output. for example, I have XSLT as > following: > <NAME><xsl:value-of select="N1" /></NAME> > I don't need <NAME /> or <NAME> </NAME>. > One way I can do it is use <xsl:if> outside of <Name> tag, > but that's too > much for me because I have a lot of similar tags. Try <xsl:template match="*" mode="copy-unless-empty"> <xsl:if test="node()"> <xsl:copy> <xsl:copy-of select="@*"/> <xsl:value-of select="."/> </xsl:copy> </xsl:if> </xsl:template> and then use <xsl:apply-templates mode="copy-unless-empty"/> to process these elements. > > Another related question is that some time I need put a > default value if nothing there. A similar technique should do the trick. Mike Kay XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: How to delete empty element tag, Kay Michael | Thread | RE: How to delete empty element tag, Jeni Tennison |
RE: html to xml, Hillyard, Matthew | Date | Re: Testing position of parent, David Carlisle |
Month |