Могу ли я сказать
doc.getElementsByTagName("c").item(0).getchildnode() ;
Вот короткое и простое выражение XPath , которое выбирает дочерние элементы первого c
элемента в документе XML:
(//c)[1]/*
Проверка на основе XSLT:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="(//c)[1]/*"/>
</xsl:template>
</xsl:stylesheet>
Когда это преобразование применяется к предоставленному документу XML :
<a>
<b>
<c type="lol">
<d>1</d>
<f>2</f>
</c>
<c type="lol">
<d>2</d>
<f>2</f>
</c>
<c type="h">
<d>v</d>
<f>d</f>
</c>
</b>
</a>
мы получаем требуемый, правильный результат - выражение XPath вычисляется и выбранные узлы копируются в вывод :
<d>1</d>
<f>2</f>