Как получить подраздел xml в экономичном режиме?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как получить подраздел xml в экономичном режиме?

Сообщение Anonymous »

У меня есть приведенная ниже грамматика, и она отлично работает, когда элементы xml находятся в одной строке. Однако если они находятся на нескольких строках, это не так. Я попробовал использовать флаг регулярного выражения «sm», но он все еще не работает.
Как мне получить содержимое ?

Код: Выделить всё

from parsimonious.grammar import Grammar
from parsimonious.nodes import NodeVisitor

grammar = Grammar(
r"""
text = (sections)*
sections = ws* '' ws* section_element+ ws* '' ws*
section_element = "" section_content ""
section_content =  ws* value ws*
ws = ~"\s*"
value = ~"[ a-z < > \n\r\s].*"
"""
)

class TextVisitor(NodeVisitor):
def visit_text(self, node, visited_children):
return node.text

def visit_section_content(self, node, visited_children):
return node.text

def generic_visit(self, node, visited_children):
return visited_children or node

text = """


 aaa  bbb


"""

tree = grammar.parse(text)
tv = TextVisitor()
extracted_text = tv.visit(tree)
print(extracted_text)

Изменение

Код: Выделить всё

text = """


 aaa  bbb


"""
в

Код: Выделить всё

text = """


 aaa 
bbb


"""
не работает.

Подробнее здесь: https://stackoverflow.com/questions/792 ... rsimonious
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»