如何解析JSF风格的XHTML

2024-09-28 16:54:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个使用JSF的Java项目。在我们的视图层中,我们没有在所有XHTML文件中使用ids。我要做的是解析XHTML文件并检查以下标记

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

常量部分是<h:input...>; 在选择了正确的标记之后,剩下的可以是<h:inputSecret<h:inputWHATELSE。我想检查该标记是否有id属性。如果没有,我想添加一个id。在

Here是我们的XHTML文件之一。在

我试着用Python做这项工作。我试过ElementTree,piksemel和Beauthulsoup。任何关于这个问题的帮助都将不胜感激。在


Tags: 文件项目标记视图ididsinputvalue
1条回答
网友
1楼 · 发布于 2024-09-28 16:54:55

使用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,并在需要时分配一个新值。在

相关问题 更多 >