Я много искал, чтобы найти точный эквивалент, но не смог найти. Вопрос здесь заключается в том, что метод перевода java8-javax. xml .xpath. * Не дает ожидаемого результата.
example-
Actual-
XPathExpression xpathitemtype = xpath.compile("//*[@type=\"" + xpathType + "\"]/ancestor::itemtype");
final NodeList itemType = (NodeList) xpathitemtype.evaluate(document, XPathConstants.NODESET);
используя translate-
XPathExpression xpathitemtype = xpath.compile("//*[translate(@type,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')='" + xpathType.toLowerCase() + "']/ancestor::itemtype");
final NodeList itemType = (NodeList) xpathitemtype.evaluate(document, XPathConstants.NODESET);
Теперь я использовал translate, потому что мне нравится получать itemType независимо от случая в данном примере xml document-
, если value is- exportMedia или ExportMedia или EXportMEdia в любом случае просто возвращают вывод.
Теперь в приведенном выше примере оба возвращают один и тот же вывод, который, как мне кажется, translate не работает в моем случае
<itemtype code="RemoveCatalogVersionJob">
<attribute qualifier="catalogVersion" type="CatalogVersion">
<persistence type="property"/>
</attribute>
<attribute qualifier="removedItems" type="ExportMEdia">
<persistence type="property"/>
</attribute>
<attribute qualifier="notRemovedItems" type="exportMedia">
<persistence type="property"/>
</attribute>
</itemtype>
Теперь я хочу значение элемента если это какие-либо случаи экспортаMedia