while traversing in reverse order using node.getPreviousSibling() method from a node, it doesn’t traverse all the way till beginning of document and it return null at some intermediate node.
build environment - Java 1.8, aspose-words - 20.8
code snippet :
public void findSignatureNode(String wordFileLocation) {
try {
Document doc = new Document(wordFileLocation);
NodeCollection paragraphs = doc.getChildNodes(NodeType.PARAGRAPH, true);
Node introductionNode = null;
for (Paragraph paragraph : (Iterable<Paragraph>) paragraphs) {
if (StringUtils.isNotEmpty(paragraph.getText()) && paragraph.getText().trim().equalsIgnoreCase("Introduction")) {
introductionNode = paragraph;
break;
}
}
if (null != introductionNode) {
Node previous = introductionNode;
while (previous != null) {
if (StringUtils.isNotEmpty(previous.getText()) && previous.getText().trim().equalsIgnoreCase("Signature Page")) {
System.out.println("-- found -- Signature Page Node");
}
if (StringUtils.isNotEmpty(previous.getText()) && previous.getText().trim().equalsIgnoreCase("Revision History")) {
System.out.println("-- found -- Revision History Node");
}
previous = previous.getPreviousSibling();
}
} else System.out.println("Introduction node is null");
} catch (Exception e) {
e.printStackTrace();
}
}
File used : issue1_signature_page.docx (54.9 KB)
Expected Output :
-- found -- Revision History Node
-- found -- Signature Page Node
Actual Output:
-- found -- Revision History Node