2012-04-27 25 views
0

我有以下XML:發現的arent嵌套在一個子節點textnodes

<p> 
    <tx> 
    <ts> 
     <mtr> 
     <pos> 
      <Part>Text1</Part> 
     </pos> 
     </mtr> 
    Text2<hyph/>Text3 
    </ts> 
    </tx> 
</p> 
<p> 
    <tx> 
    <ts> 
     Text4 
    </ts> 
    </tx> 
</p> 

所以基本上我有一系列的P/TX/TS與TS有時有可選的子節點。

現在我需要找到p/tx/ts正下方的所有文本節點,但不是那些嵌套在ts子節點中的textnode。 在上面,我需要文本2,文字3和文本4但不text1的(因爲它是嵌套在地鐵/ POS /部分即TS的子節點)

回答

0

此XPath應該返回例如你正在尋找:

/*/p/tx/ts/text()[normalize-space(.)!=''] 

注意:第一個/*已被添加,因爲您需要一個根元素才能使您的示例格式良好。

+0

我不明白,我need.I得到文本2和文本4而不是文本3的結果。 – Vanessa 2012-05-02 05:50:17

0

這回我什麼,我在尋找:

<xsl:template match="p"> 
    <xsl:for-each select="./tx/ts"> 
    <xsl:apply-templates select="child::text()" /> 
    </xsl:for-each> 
</xsl:template>