我需要使用dom4j解析器访问docx XML文件中的子节点。
我使用以下方法创建了一个节点列表:
List<Node> nodes = document.selectNodes("/w:document/w:body/w:tbl/w:tr/w:tc");
但是,我不知道如何找到该selectNode组的子节点。 docx文件是一个列表,我正在编辑并尝试更新我们的数据库。
我需要保持这个级别,因为我需要知道数据所在的列。 我需要达到数量
我想让孩子上一级。我需要确定任何列中是否缺少任何数据。
感谢您的帮助 &LT;
w:tc>
<w:tcPr>
<w:shd w:val="clear" w:color="auto" w:fill="FFFFFF"/>
<w:tcBorders>
<w:left w:val="single" w:sz="4"/>
<w:top w:val="single" w:sz="4"/>
</w:tcBorders>
<w:vAlign w:val="top"/>
</w:tcPr>
<w:p>
<w:pPr>
<w:pStyle w:val="Style2"/>
<w:framePr w:w="10805" w:wrap="notBeside" w:vAnchor="text" w:hAnchor="text" w:xAlign="center" w:y="1"/>
<w:widowControl w:val="0"/>
<w:keepNext w:val="0"/>
<w:keepLines w:val="0"/>
<w:shd w:val="clear" w:color="auto" w:fill="auto"/>
<w:bidi w:val="0"/>
<w:jc w:val="left"/>
<w:spacing w:before="0" w:after="0" w:line="190" w:lineRule="exact"/>
<w:ind w:left="200" w:right="0" w:firstLine="0"/>
</w:pPr>
<w:r>
<w:rPr>
<w:rStyle w:val="CharStyle15"/>
</w:rPr>
<w:t>Quantity</w:t>
</w:r>
</w:p>
</w:tc>
答案 0 :(得分:0)
要查找当前上下文节点的子节点,您必须指定'/'
不是以for (Iterator iterator = nodes.iterator(); iterator.hasNext();) {
Node node = (Node) iterator.next();
node.selectNodes("w:tcPr");//="child::w:tcPr", child is the default axis of location path
//The API return child nodes `w:tcPr`
}
char开头。
w:tcPr/w:shd
node.selectNodes(&#34; W:TCPR / W:SHD&#34);
API返回1节点[/ w:document / w:body / w:tbl / w:tr / w:tc / w:tcPr/w:shd
];
node.selectNodes(&#34; * / W:SHD&#34); //选择大孩子&#34; w:shd&#34;上下文节点
API返回1个节点[w:p/w:shd
];如果存在节点w:tcPr/w:shd
,则会选择它。
node.selectNodes(&#34;自::节点()//瓦特:SHD&#34); //的XPath =&#34;自::节点()/后代或自身::节点()/ W:SHD&#34;
API返回2个节点[w:p/w:pPr/w:shd
,w:shd
];如果存在节点w:tcPr/w:shd
,则会选择它。
node.selectNodes(&#34; * //瓦特:SHD&#34); //的XPath =&#34;子::节点()/后代或自身::节点()/ W: SHD&#34;
API还会返回2个节点[w:p/w:pPr/w:shd
,w:shd
];但如果节点UINavigationController
存在,则 NOT 将被选中。