如何编写XPath提取Excel XML中的表头与数据行?
Excel XML XPath提取方案
命名空间前置说明
Excel XML中的ss是预定义命名空间,值为urn:schemas-microsoft-com:office:spreadsheet。使用XPath前需先绑定该命名空间(不同工具/语言绑定方式不同,比如Python的lxml需通过namespaces参数指定)。
提取表头数据(带ss:StyleID="s6"的Cell)
直接定位目标Cell节点下的文本内容,XPath表达式:
//ss:Cell[@ss:StyleID='s6']/ss:Data/text()
- 逻辑:选中所有带有
ss:StyleID="s6"属性的ss:Cell节点,再提取其下ss:Data子节点的文本。
提取普通数据行内容
假设数据行是表头行之后的所有行,可通过两种方式过滤:
- 按行位置定位(表头为第一行时):
//ss:Row[position() > 1]/ss:Cell/ss:Data/text()
- 按Cell无目标样式定位:
//ss:Cell[not(@ss:StyleID='s6')]/ss:Data/text()
- 若数据行有其他特定标识,可调整过滤条件(比如结合Row的专属属性)。
内容的提问来源于stack exchange,提问作者AJVenice
相关产品推荐
相关产品推荐

