Разбор WordprocessingML с использованием XPath, XQuery или XPathNavigator

Я имею дело с обработкой текста ML (файл Office Word) с использованием выражений XPath. Из-за характера закладок, размещаемых в документе, начало закладки может быть где-то еще, а затем конец. Таким образом, они на самом деле не следуют какой-либо правильно сформированной иерархии XML, поэтому возникает проблема написания выражений XPath для такого закладочного контента для чтения из файла document.xml.

Может кто-нибудь помочь, пожалуйста, как обрабатывать такой необычный анализ XML с помощью XPath? например ниже таблицы:

    <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>

Закладка Заканчивается здесь внутри таблицы, но не в <tr> или же <tc>, и bookmarkStart запускается за пределами таблицы. Это сценарий, который я имею из моих тегов. Пожалуйста, помогите с этим. Написание выражения Xpath для этого становится сложным, любая помощь с XSLT также приветствуется.

0 ответов

Другие вопросы по тегам