使用python判断 如果XML中“<....../>”没有被<!--XX_HLR_NUM--><!--END-->包含的,打印出该行号。 全文顶层“<....../>”例外。
时间: 2023-12-02 17:04:46 浏览: 84
读取XML并打印
4星 · 用户满意度95%
可以使用Python的ElementTree库来解析XML文件,然后遍历XML节点,判断节点名是否为“<....../>”,再判断该节点的父节点是否包含注释“<!--XX_HLR_NUM--><!--END-->”,如果不包含,则打印该节点所在的行号。
下面是一个示例代码:
```python
import xml.etree.ElementTree as ET
def check_xml(xml_file):
tree = ET.parse(xml_file)
root = tree.getroot()
for elem in root.iter():
if elem.tag == "<....../>":
if not is_in_comment(elem):
print("Line %d: <%s/> not in comment" % (elem.sourceline, elem.tag))
def is_in_comment(elem):
parent = elem.getparent()
while parent is not None:
if parent.tag == "<....../>":
return True
elif parent.tag == "<!--XX_HLR_NUM--><!--END-->":
return True
parent = parent.getparent()
return False
check_xml("example.xml")
```
需要替换代码中的`<....../>`和`<!--XX_HLR_NUM--><!--END-->`为实际的XML节点名和注释内容。
阅读全文