我正在使用 XPath 表达式处理文字处理 ML(Office Word 文件)。由于放置在文档中的书签的性质,书签的开始可能在其他地方,然后是结束。所以他们并没有真正遵循任何格式良好的 XML 层次结构,所以这就是为这些书签内容编写 XPath 表达式以从 document.xml 文件中读取的挑战。
有人可以帮助如何使用 XPath 处理这种不寻常的 XML 解析吗?例如下表:
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="003A3B76">
<w:bookmarkStart w:id="3" w:name="Table3"/>
</w:p>
<w:tbl>
<w:tblPr>
<w:tblStyle w:val="TableGrid"/>
<w:tblW w:w="0" w:type="auto"/>
<w:tblLook w:val="04A0" w:firstRow="1" w:lastRow="0" w:firstColumn="1" w:lastColumn="0" w:noHBand="0" w:noVBand="1"/>
</w:tblPr>
<w:tblGrid>
<w:gridCol w:w="533"/>
<w:gridCol w:w="2148"/>
<w:gridCol w:w="986"/>
<w:gridCol w:w="865"/>
<w:gridCol w:w="4818"/>
</w:tblGrid>
<w:tr w:rsidR="003A3B76" w:rsidTr="005666D2">
<w:tc>
<w:tcPr>
<w:tcW w:w="533" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="BFBFBF" w:themeFill="background1" w:themeFillShade="BF"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>#</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2148" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="BFBFBF" w:themeFill="background1" w:themeFillShade="BF"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>Name</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="986" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="BFBFBF" w:themeFill="background1" w:themeFillShade="BF"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>Age</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="865" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="BFBFBF" w:themeFill="background1" w:themeFillShade="BF"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>Weight</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="4818" w:type="dxa"/>
<w:shd w:val="clear" w:color="auto" w:fill="BFBFBF" w:themeFill="background1" w:themeFillShade="BF"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>Will</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
<w:tr w:rsidR="003A3B76" w:rsidTr="005666D2">
<w:tc>
<w:tcPr>
<w:tcW w:w="533" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>2</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="2148" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>Nagraj</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="986" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>38</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="865" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>150lb</w:t>
</w:r>
</w:p>
</w:tc>
<w:tc>
<w:tcPr>
<w:tcW w:w="4818" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="003A3B76" w:rsidRDefault="003A3B76" w:rsidP="005666D2">
<w:r>
<w:t>Be real</w:t>
</w:r>
</w:p>
</w:tc>
</w:tr>
<w:bookmarkEnd w:id="3"/>
</w:tbl>
bookmarkEnd 在 table 内结束,但不在<tr>
or中<tc>
。并且书签开始在表格之外启动。这就是我从我的标签中得到的场景。请帮助解决这个问题。对此编写 Xpath 表达式变得越来越复杂,也欢迎任何有关 XSLT 的帮助。