我有XML
<getInquiryAboutListReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <inquiryAbouts> <inquiryAbout> <code>Code</code> <nameKk>Something</nameKk> <nameRu>Something</nameRu> <documents xsi:nil="true"/> </inquiryAbout> </inquiryAbouts> </getInquiryAboutListReturn>
我想用XSLT处理它来复制所有的XML
我怎么能复制所有XML没有<documents xsi:nil="true"/>或没有xsi:nil =“true”?
所需的输出XML
<getInquiryAboutListReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <inquiryAbouts> <inquiryAbout> <code>Code</code> <nameKk>Something</nameKk> <nameRu>Something</nameRu> </inquiryAbout> </inquiryAbouts> </getInquiryAboutListReturn>
这个简单的XSLT:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0"> <xsl:output omit-xml-declaration="no" indent="yes"/> <xsl:strip-space elements="*"/> <!-- TEMPLATE #1 --> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <!-- TEMPLATE #2 --> <xsl:template match="*[@xsi:nil = 'true']" /> </xsl:stylesheet>
…适用于OP的源XML:
<?xml version="1.0"?> <getInquiryAboutListReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <inquiryAbouts> <inquiryAbout> <code>Code</code> <nameKk>Something</nameKk> <nameRu>Something</nameRu> <documents xsi:nil="true"/> </inquiryAbout> </inquiryAbouts> </getInquiryAboutListReturn>
…产生预期的结果XML:
<?xml version="1.0"?> <getInquiryAboutListReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <inquiryAbouts> <inquiryAbout> <code>Code</code> <nameKk>Something</nameKk> <nameRu>Something</nameRu> </inquiryAbout> </inquiryAbouts> </getInquiryAboutListReturn>
说明: