现有一个xml 文件结构如下:
<Report>
<Body>
<Table>
<Columns>
<Column width=2/>
<Column width=3/>
</Columns>
<Row>
<Cell name="a"/>
<Cell name="b"/>
</Row>
</Table>
<Table>
<Columns>
<Column width=2/>
<Column width=3/>
</Columns>
<Row>
<Cell name="c"/>
<Cell name="d"/>
</Rows>
</Table>
</Body>
</Report>
说明:每个表格由行(Row)和列(ColumnS)组成,而Row里面的Cell个数和Columns里面的Columns是一一对应的,控制这这个列的宽度。现在要实现的功能是用Xpath查找到Name为“c”的Cell节点(所有Cell节点的name属性值不会相同,要删除掉这个cell,并且删除掉对应的Columns中的Column。用.net中xmldocument类+Xpath如何实现?
谢谢了
<Report>
<Body>
<Table>
<Columns>
<Column width=2/>
<Column width=3/>
</Columns>
<Row>
<Cell name="a"/>
<Cell name="b"/>
</Row>
</Table>
<Table>
<Columns>
<Column width=2/>
<Column width=3/>
</Columns>
<Row>
<Cell name="c"/>
<Cell name="d"/>
</Rows>
</Table>
</Body>
</Report>
说明:每个表格由行(Row)和列(ColumnS)组成,而Row里面的Cell个数和Columns里面的Columns是一一对应的,控制这这个列的宽度。现在要实现的功能是用Xpath查找到Name为“c”的Cell节点(所有Cell节点的name属性值不会相同,要删除掉这个cell,并且删除掉对应的Columns中的Column。用.net中xmldocument类+Xpath如何实现?
谢谢了
然后记住Index,在找到父节点的PreviousSibling也就是Columns
然后删除相应的Index的子节点
比较麻烦
具体参考XPath中的preceding-sibling
意思包含上下文节点之前的所有兄弟节点XmlNode node = ........//找到你想要的节点
int pos = node.SelectNodes("preceding-sibling::node()").Count;
这个pos就是node节点所在其父节点的Index,从0开始然后你就可以根据这个Index删除Columns的节点了