Как разобрать стиль JSF XHTML - PullRequest
0 голосов
/ 21 декабря 2011

У нас есть проект Java, который использует JSF.В нашем слое представления мы не использовали id s во всех наших файлах XHTML.Я хочу проанализировать файлы XHTML и проверить наличие таких тегов, как

<h:inputText id="username" value="#{identity.username}"/>

. Постоянная часть - <h:input...>. После выбора правильного тега остальное может быть чем-то вроде <h:inputSecret <h:inputWHATELSE.Я хочу проверить, есть ли атрибут id этого тега.Если нет, я хочу добавить id к нему.

Здесь - один из наших файлов XHTML.

Я попытался выполнить работу с Python.Я пробовал ElementTree, пиксемел и BeautifulSoup.Любая помощь по этому вопросу будет оценена.

1 Ответ

1 голос
/ 21 декабря 2011

Используя Beautifulsoup, вы можете сделать это следующим образом:

from BeautifulSoup import BeautifulSoup
import re

soup = BeautifulSoup(<your_xml_here>)
nodes = soup.findAll(name=re.compile('^h:input'))
for node in nodes:
    if 'id' not in dict(node.attrs):
        node['id'] = <whatever you need>

Как видно, чтобы получить все узлы, которые соответствуют шаблону имени, который вы ищете, все, что вам нужно, это регулярное выражение,После этого вы можете проверить атрибуты узла, чтобы убедиться, определено ли id или нет, и назначить новое значение при необходимости.

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