일부 XPath :하위 노드의 서브 세트 만 포함하는 노드를 선택할 수 있습니까?
//tbody/tr[2]/td/div/table/tbody/tr[2]/td[position() > 1]
어느 것이 든 첫 번째 자식 노드를 제외한 모든 것을 제공합니다. 그러나 결과적으로 나에게 td 노트의 노드리스트를 제공합니다. 부모 tr 노드를 선택하고 싶지만 첫 번째 자식 노드를 제거해야합니다.
그냥 xpath를 사용하여 가능합니까?
일부 XPath :하위 노드의 서브 세트 만 포함하는 노드를 선택할 수 있습니까?
//tbody/tr[2]/td/div/table/tbody/tr[2]/td[position() > 1]
어느 것이 든 첫 번째 자식 노드를 제외한 모든 것을 제공합니다. 그러나 결과적으로 나에게 td 노트의 노드리스트를 제공합니다. 부모 tr 노드를 선택하고 싶지만 첫 번째 자식 노드를 제거해야합니다.
그냥 xpath를 사용하여 가능합니까?
XPath는 XML 문서의 쿼리 언어입니다. 따라서 소스 XML 문서의 구조를 수정하거나 새 XML 문서를 작성할 수 없습니다.
수정 된 새 문서를 작성하는 작업은 XPath로만 수행 할 수 없습니다.
이러한 변화는 다음과 같은 XML 문서에 적용되는<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="tr[2]/td[1]"/>
</xsl:stylesheet>
:
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
원하는, 올바른 결과 (모든 노드
이 XSLT으로 달성하기 쉽습니다 첫 번째 <td>
두 번째 자식을 제외하고 복사 됨 :
<table>
<tr>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tr>
<td>2</td>
<td>3</td>
<td>4</td>
</tr>
</table>
+1 정답. –
+1 올바른 제안. – Flack
좋은 질문, +1. 설명 및 전체, 짧고 쉬운 해결책에 대한 내 대답을 참조하십시오. –