Хорошо, у меня есть пример XML, который выглядит следующим образом:
<Node name="details">
<Node name="1130482269">
<Val name="type"><u>2</u></Val>
<Val name="owner"><n/></Val>
<Val name="account_number"><u>99-71-39</u></Val>
</Node>
<Node name="570722270">
<Val name="type"><u>2</u></Val>
<Val name="owner"><n/></Val>
<Val name="account_number"><u>99 71 40</u></Val>
</Node>
<Node name="1845243341">
<Val name="type"><u>2</u></Val>
<Val name="owner"><n/></Val>
<Val name="account_number"><u>9971-41</u></Val>
</Node>
</Node>
Я пытаюсь выполнить поиск по номеру аккаунта. Но существует так много разных форматов, в которых он может быть. У некоторых есть пробелы, у некоторых есть тире, у некоторых есть смесь и т. Д. Если бы я мог выполнить поиск, удаляя пробелы и тире, я мог бы получить любой номер счета.
Поскольку accountnumber является поисковым запросом, конечная цель состоит в том, чтобы получить номер имени узла второго уровня, выполнив поиск в XPATH, выполнив следующее:
doc = libxml2.parseDoc(xml)
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("/Node/Node[Val[@name='account_number']/*='" + str(accountnumber) + "']/@name")
Есть ли способ использовать поиск XPATH, чтобы удалить все тире и пробелы и оставить только цифры?
Спасибо