Я снова и снова задавал этот вопрос в Google и перечитывал несколько SO-тем, но ничего полезного не нашел.
В моем проекте у меня есть большой XML, который распаковывается в структуру объектов JAXB,Допустим, JAXB выглядит следующим образом:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "GrandParent.B",
propOrder = {"parent"}
)
public class GrandParentB implements Equals, HashCode, ToString {
@XmlElement(
name = "Parent"
)
protected ParentB parent;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "Parent.B",
propOrder = {"child"}
)
public class ParentB implements Equals, HashCode, ToString {
@XmlElement(
name = "Child"
)
protected ChildB child;
}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "Child.B",
propOrder = {"address"}
)
public class ChildB implements Equals, HashCode, ToString {
@XmlElement(
name = "Address"
)
@XmlJavaTypeAdapter(Adapter3.class)
protected String address;
}
Теперь я извлекаю объекты JAXB из корня:
ChildB childB = grandParentB.getParentB().getChildB();
И использую их для всех приложений:
void someMethod(ChildB childB) {
doSomethingWith(childB)
}
Теперь я хотел бы определить положение узла childB в дереве (предпочтительно в виде XPath):
void someMethod(ChildB childB) {
logger.info(someFramework.getAbsoluteXPath(childB));
}
INFO : /GrandParent/Parent/Child
Есть ли способ сделать это?
Я ценю любую помощь, даже если это будет косвенным.
Спасибо!