XML
<?xml version="1.0"?>
<Worksheet ss:Name="Sheet1">
 <Table>
  <Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s21"><Data ss:Type="String">TxnId</Data></Cell>
<Cell><Data ss:Type="String">Seq</Data></Cell>
  </Row>
  <Row ss:AutoFitHeight="0">
  <Cell ss:StyleID="s21"><xsl:for-each select="ds:Ma_JobType" tag_type="2"/></Cell>
  </Row>
  <Row ss:AutoFitHeight="0">
  <Cell ss:StyleID="s21"><xsl:value-of select="ds:TxnId"/></Cell>
  </Row>
  <Row ss:AutoFitHeight="0">
  <Cell ss:StyleID="s21"><xsl:value-of select="ds:Seq"/></Cell>
  </Row>
 </Table>
</Worksheet>我現在要取到<xsl:for-each select="ds:Ma_JobType" tag_type=2/> 這個值的ROW節點在所有的ROW是第幾行?

解决方案 »

  1.   

    第一行!因为在遍历这个XML的时候,我一搬在遍历的时候
    xmlNode node = treeview.nodes.add();
    foreach(xmlNode xm in node.childNodes){
        if (xm.Name="Row"){
       }
    }
    来遍历!~
      

  2.   

    怎麼才可以取到這個ROW的索引呢。。
      

  3.   

    lz的这个要求根本就没有依据。一个xml文档来说,换行和空格默认是忽略的。
    如:
    <?xml version="1.0"?>
    <Root><A>test</A></Root>和下面的
    <?xml version="1.0"?>
    <Root>
         <A>
              test
         </A>
    </Root>是一样的,判断某个节点是第几行,根本没有意义。
      

  4.   

    判断是第几行,应该当做文本文件来读取。
    然后一行一行的遍历,找到行数。
    如果用xml的理念来看,根本不存在某个节点在文档的第几行的说法。。
      

  5.   

    XmlNode current = doc.DocumentElement.SelectSingleNode("/Worksheet/Table/Row/Cell/xsl:for-each[@select=\"ds:Ma_JobType\"][@tag_type=2]");//首先取到需要比较的对象
    //然后取到<Row ss:AutoFitHeight="0">这个元素集合(使用getElementsByTagName),然后循环这个集合,拿他的儿子的儿子元素跟上面的节对比,一样则取出当前的循环次数。break;OK,说这么清楚了。其它代码自己写吧。
      

  6.   

    能根據。。
    <Cell ss:StyleID="s21"><xsl:for-each select="ds:Ma_JobType" tag_type="2"/></Cell>
    字節點的值找到它的父節點<Row>麼
    我覺得用循環去取還是可以的
    但是。。不知道怎麼去取。。