Как написать содержимое запроса XMLLint –shell?

Я использую xmllint --shell для проверки очень большого XML-файла. Я написал запрос XPath, который возвращает результаты, которые я хочу, но чтобы просматривать и сохранять результаты, мне приходится write filename.xml cd на каждый узел, а затем write filename.xml . Это было бы не так плохо, если бы мне не приходилось искать каждый раз, выбирая индекс результата, который я хочу. Пример:

 xpath count(/root/entry/subentry[special_id = /root/entry/subentry/special_id]) Object is a Node Set : Set contains 121 nodes: cd (/root/entry/subentry[special_id = /root/entry/subentry/special_id])[1] write node1.xml cd (/root/entry/subentry[special_id = /root/entry/subentry/special_id])[2] write node2.xml cd (/root/entry/subentry[special_id = /root/entry/subentry/special_id])[3] write node3.xml ... cd (/root/entry/subentry[special_id = /root/entry/subentry/special_id])[121] write node121.xml 

Выше приведено более или менее то, что я делаю. Есть ли способ сохранить XML-узлы в виде файла прямо из поиска, не используя для них индивидуальный cd и продолжить повторять поиск? Или есть способ сохранить результаты поиска или получить их номера позиций в одном запросе?

Это не представляется возможным, поэтому я написал XSLT, чтобы сделать это.

 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> <xsl:template match="/"> <root> <xsl:for-each select="/root/entry/subentry[special_id = /root/entry/subentry/special_id]"> <xsl:copy-of select="."/> </xsl:for-each> </root> </xsl:template> </xsl:stylesheet>