Xpath с подстановочными знаками, возвращающими частичное имя узла - PullRequest
1 голос
/ 14 июня 2011

Я новичок в Xpath и пытаюсь проанализировать модель UML, сохраненную в формате XML. У меня есть несколько узлов в форме: -

<ModelProfile:create xmi:id='_16_0_1_187c046a_1307545286478_527165_409' base_Element='_16_0_1_187c046a_1307545286478_986851_398'/>

<ModelProfile:get xmi:id='_16_0_1_187c046a_1307545286478_698482_412' base_Element='_16_0_1_187c046a_1307545286478_639036_401'/>

У меня есть значение base_Element, и я знаю, что узлы начинаются с ModelProfile:, но мне нужно получить значение после строки ModelProfile: - т.е. слово "get" или "create" в приведенном выше 2 примера.

Как я могу сделать это в Xpath (на Java)?

Спасибо

Сара

Ответы [ 2 ]

0 голосов
/ 14 июня 2011

Если вы зарегистрировали URI пространства имен *1003*, вы можете использовать:

"//ModelProfile:*[@base_Element='" + yourBaseElementValue + "']"

, чтобы получить все узлы с этим конкретным значением атрибута base_Element.

С этого момента вы можете использовать свойство nodeName возвращаемых узлов.

0 голосов
/ 14 июня 2011

Вам нужно будет идентифицировать элементы по месту их появления в документе, например, получить все элементы, которые являются дочерними для элемента "umlModel".После этого просто вытащить локальное имя (бит «get» или «create»).

Часть «ModelProfile» - это префикс пространства имен, который будет привязан к URI.Вам нужно будет понять, как работают пространства имен, прежде чем заставить XPath работать так, как вы ожидаете.Представление w3c школ кажется разумным: http://www.w3schools.com/xml/xml_namespaces.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...