Java Xpath для исключения дочернего элемента в xml - PullRequest
0 голосов
/ 05 сентября 2018

Мой XML-файл похож на ниже

<table id="553" name="Schedule Master">
<property name="dataSet">Schedule_Master</property>
                        <list-property name="boundDataColumns">
                            <structure>
                                <property name="name">SCHD_ID</property>
                                <expression name="expression">dataSetRow["SCHD_ID"]</expression>
                                <property name="dataType">decimal</property>
                            </structure>
                        </list-property>
                        <table id="585" name="SegmentInfo_Child">
                                        <property name="dataSet">SegmentInfo_Child</property>
                                                    <list-property name="visibility">
                                                        <structure>
                                                            <property name="format">all</property>
                                                            <expression name="valueExpr">Total.count() &lt; 1</expression>
                                                        </structure>
                                                    </list-property>

                          </table>                  
                        <table id="627" name="EnrollmentInfo_Child">
                                        <property name="dataSet">EnrollmentInfo_Child</property>
                                                    <list-property name="visibility">
                                                        <structure>
                                                            <property name="format">all</property>
                                                            <expression name="valueExpr">Total.count() &lt; 1</expression>
                                                        </structure>
                        </table>                  
</table>

Таким образом, я хочу получать информацию только из родительской таблицы Schedule Master, что означает, что мой xml должен выглядеть следующим образом.

    <table id="553" name="Schedule Master">
    <property name="dataSet">Schedule_Master</property>
                            <list-property name="boundDataColumns">
                                <structure>
                                    <property name="name">SCHD_ID</property>
                                    <expression name="expression">dataSetRow["SCHD_ID"]</expression>
                                    <property name="dataType">decimal</property>
                                </structure>
                            </list-property>
</table>

так как я могу добиться этого с помощью выражения Xpath. Я попробовал ниже выражения, но, очевидно, они не помогли

1) "//cell/table[1]"  
2) "//table[(descendant::table)]"

Заранее спасибо

1 Ответ

0 голосов
/ 05 сентября 2018

Если вы хотите извлечь данные (например, property текстовое значение) только из внешней таблицы:

//property[count(ancestor::table) = 1]/text()

Это не будет соответствовать property узлам внутренних таблиц, поскольку у них есть два table предка, поэтому предикат count(ancestor::table) = 1 вернет false для них

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...