Java Xpath在xml中排除子对象

Java Xpath在xml中排除子对象,java,xpath,Java,Xpath,我的xml文件如下所示 <table id="553" name="Schedule Master"> <property name="dataSet">Schedule_Master</property> <list-property name="boundDataColumns"> <structure>

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

如果您只想从外部表格中提取实例属性文本值的数据,请提前感谢

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

这将与内部表的属性节点不匹配,因为它们有两个表祖先,因此CountAncenter::table=1谓词将为它们返回false

XPath无法从XML中删除元素。。。是否仅从外部表获取特定数据?如果是,具体哪些数据?是@Andersson,仅来自外部表,我已经用我想要的结果更新了帖子,是的,我不想删除那些子表,而是用regex我只需要外部表你需要从外部表中提取值,还是需要修改当前的XML DOM来删除除外部表以外的所有内容?我需要从外部表中提取值我实际上想要以我现有的方式输出前面提到过,并且给定的表达式将只提供属性,但实际上它可以包含许多类似于属性的项。正如我已经说过的,您不能使用XPath删除节点。您可以使用//table[notancestor::table]来选择所需的表,但您仍然可能会遇到查找子节点的问题。如果无法找到子节点,则应该存在不会提供子节点的内容。您不能使用XPath选择不包括其子节点/子节点的外部表!您只能选择所有子项。可以筛选子体以从内部节点中排除节点tables@AutoJava:XPath用于选择;如果需要转换,请使用XSLT。
1) "//cell/table[1]"  
2) "//table[(descendant::table)]"
//property[count(ancestor::table) = 1]/text()