Xslt для внутренних узлов XML
У меня есть исходный XML-файл, и он выглядит так
<?xml version="1.0" encoding="UTF-8" ?> <HOST_LIST_VM_DETECTION_OUTPUT> <RESPONSE> <DATETIME>2017-05-05T08:52:51Z</DATETIME> <HOST_LIST> <HOST> <IP>10.132.195.26</IP> <DETECTION_LIST> <DETECTION> <QID>38255</QID> </DETECTION> <DETECTION> <QID>70001</QID> </DETECTION> </DETECTION_LIST> </HOST> <HOST> <IP>172.18.4.79</IP> <DETECTION_LIST> <DETECTION> <QID>19626</QID> </DETECTION> <DETECTION> <QID>19627</QID> </DETECTION> </DETECTION_LIST> </HOST> </HOST_LIST> </RESPONSE> </HOST_LIST_VM_DETECTION_OUTPUT>
Я хочу, чтобы результат был поставлен вот так
<Records> <record> <qid>38255</qid> <ip>10.132.195.26</ip> </record> <record> <qid>70001</qid> <ip>10.132.195.26</ip> </record> <record> <qid>19626</qid> <ip>172.18.4.79</ip> </record> <record> <qid>19627</qid> <ip>172.18.4.79</ip> </record> </Records>
Что я уже пробовал:
XSLT, который я пытался настроить, выглядит следующим образом
<?xml version = "1.0" encoding = "UTF-8"?> <xsl:stylesheet version = "1.0" xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates select="HOST_LIST_VM_DETECTION_OUTPUT/RESPONSE/HOST_LIST/HOST"/> </xsl:template> <xsl:template match="HOST_LIST_VM_DETECTION_OUTPUT/RESPONSE/HOST_LIST/HOST"> <xsl:value-of select="IP"/> <xsl:apply-templates select="HOST_LIST_VM_DETECTION_OUTPUT/RESPONSE/HOST_LIST/HOST/DETECTION_LIST/DETECTION"/> </xsl:temaplte> <xsl:template match="HOST_LIST_VM_DETECTION_OUTPUT/RESPONSE/HOST_LIST/HOST/DETECTION_LIST/DETECTION"> <xsl:for-each select="HOST_LIST_VM_DETECTION_OUTPUT/RESPONSE/HOST_LIST/HOST/DETECTION_LIST/DETECTION"> <xsl:value-of select="QID"/> </xsl:for-each> </xsl:template> </xsl:stylesheet>
Но я не могу попасть внутрь & lt;detection_list>