Filter XML based on attribute value using xslt

Aaronw120

New Member
I have searched here and I'm not able to find how to filter an xml based on their attribute. I have this xml:\[code\] <?xml version="1.0" encoding="utf-8"?> <document> <document_head> <title>This is the title</title> <version>This is the title</version> </document_head> <document_body> <paragraph id="AXD"> <text> This is a text that should be in the result </text> <properties> <size>13px</size> <color>#000000</color> </properties> <author>Current user</author> </paragraph> <paragraph id="SFI"> <properties> <text> This is some other text that should not be in there </text> </properties> </paragraph> <paragraph id="SFA"> <author>Some random guy</author> </paragraph> <paragraph id="ARG"> This doesn't mean anything. </paragraph> <paragraph id="RRR"> This does, hence should be in there. </paragraph> </document_body> </document>\[/code\]I expect this result:\[code\] <?xml version="1.0" encoding="UTF-8"?> <document> <document_head> <title>This is the title</title> <version>This is the title</version> </document_head> <document_body> <paragraph id="AXD"> <text> This is a text that should be in the result </text> <properties> <size>13px</size> <color>#000000</color> </properties> <author>Current user</author> </paragraph> <paragraph id="RRR"> This does, hence should be in there. </paragraph> </document_body> </document>\[/code\]Currently, I have this XSLT:\[code\] <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="document_body/paragraph[not(@id='AXD')][not(@id='RRR')]" /> </xsl:stylesheet>\[/code\]Which produces this XML:\[code\] <?xml version="1.0" encoding="UTF-8"?> <document> <document_head> <title>This is the title</title> <version>This is the title</version> </document_head> <document_body> <paragraph id="AXD"> <text> This is a text that should be in the result </text> <properties> <size>13px</size> <color>#000000</color> </properties> <author>Current user</author> </paragraph> </document_body> </document>\[/code\]Do you know what I am missing?Thanks.Update: It seems that the code works for another XSLT processor, but it doesn't for Java Transformer.
 
Back
Top