package org.docx4j.openpackaging.parts.WordprocessingML;
import static org.junit.Assert.*;
import java.util.List;
import javax.xml.bind.JAXBException;
import junit.framework.Assert;
import org.docx4j.XmlUtils;
import org.docx4j.jaxb.XPathBinderAssociationIsPartialException;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.exceptions.InvalidFormatException;
import org.docx4j.wml.Document;
import org.junit.Test;
public class XPathHyperlinkTest {
@Test
public void test() throws JAXBException, Docx4JException {
MainDocumentPart mdp = new MainDocumentPart();
Document document = (Document)XmlUtils.unmarshalString(openXML);
mdp.setJaxbElement(document);
List<Object> results = mdp.getJAXBNodesViaXPath("//w:hyperlink", false);
Assert.assertTrue(results.size()==1);
}
static String openXML = "<w:document mc:Ignorable=\"w14 wp14\" xmlns:w=\"http://schemas.openxmlformats.org/wordprocessingml/2006/main\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:xml=\"http://www.w3.org/XML/1998/namespace\">"
+ "<w:body>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "<w:r>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "<w:t>Some content</w:t>"
+ "</w:r>"
+ "</w:p>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "<w:r>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "<w:t>A table</w:t>"
+ "</w:r>"
+ "</w:p>"
+ "<w:tbl>"
+ "<w:tblPr>"
+ "<w:tblStyle w:val=\"TableGrid\"/>"
+ "<w:tblW w:type=\"auto\" w:w=\"0\"/>"
+ "<w:tblLook w:firstColumn=\"1\" w:firstRow=\"1\" w:lastColumn=\"0\" w:lastRow=\"0\" w:noHBand=\"0\" w:noVBand=\"1\" w:val=\"04A0\"/>"
+ "</w:tblPr>"
+ "<w:tblGrid>"
+ "<w:gridCol w:w=\"4788\"/>"
+ "<w:gridCol w:w=\"4788\"/>"
+ "</w:tblGrid>"
+ "<w:tr>"
+ "<w:tc>"
+ "<w:tcPr>"
+ "<w:tcW w:type=\"dxa\" w:w=\"4788\"/>"
+ "</w:tcPr>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "</w:p>"
+ "</w:tc>"
+ "<w:tc>"
+ "<w:tcPr>"
+ "<w:tcW w:type=\"dxa\" w:w=\"4788\"/>"
+ "</w:tcPr>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "<w:r>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "<w:t xml:space=\"preserve\">Now, here is the </w:t>"
+ "</w:r>"
+ "<w:hyperlink r:id=\"rId5\" w:history=\"1\">"
+ "<w:r>"
+ "<w:rPr>"
+ "<w:rStyle w:val=\"Hyperlink\"/>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "<w:t>StackOverflow question</w:t>"
+ "</w:r>"
+ "</w:hyperlink>"
+ "<w:r>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "<w:t>.</w:t>"
+ "</w:r>"
+ "</w:p>"
+ "</w:tc>"
+ "</w:tr>"
+ "<w:tr>"
+ "<w:tc>"
+ "<w:tcPr>"
+ "<w:tcW w:type=\"dxa\" w:w=\"4788\"/>"
+ "</w:tcPr>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "</w:p>"
+ "</w:tc>"
+ "<w:tc>"
+ "<w:tcPr>"
+ "<w:tcW w:type=\"dxa\" w:w=\"4788\"/>"
+ "</w:tcPr>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "</w:p>"
+ "</w:tc>"
+ "</w:tr>"
+ "</w:tbl>"
+ "<w:p>"
+ "<w:pPr>"
+ "<w:rPr>"
+ "<w:lang w:val=\"en-AU\"/>"
+ "</w:rPr>"
+ "</w:pPr>"
+ "</w:p>"
+ "<w:sectPr>"
+ "<w:pgSz w:h=\"15840\" w:w=\"12240\"/>"
+ "<w:pgMar w:bottom=\"1440\" w:footer=\"708\" w:gutter=\"0\" w:header=\"708\" w:left=\"1440\" w:right=\"1440\" w:top=\"1440\"/>"
+ "<w:cols w:space=\"708\"/>"
+ "<w:docGrid w:linePitch=\"360\"/>"
+ "</w:sectPr>"
+ "</w:body>"
+ "</w:document>";
}