好了,所以我有一些示例XML,看起来像这样:Xpath查询“喜欢”替代
<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>
我试图做基于ACCOUNT_NUMBER搜索。但有这么多不同的格式,它可以在一些有空格,有的有破折号,有些还混合等。如果我能够做一个搜索去掉空格和破折号,我应该能够得到任何帐号。
随着ACCOUNTNUMBER是搜索查询,最终的目标是在做XPATH搜索这样做是为了获得第二层次的节点名称数量:
doc = libxml2.parseDoc(xml)
ctxt = doc.xpathNewContext()
res = ctxt.xpathEval("/Node/Node[Val[@name='account_number']/*='" + str(accountnumber) + "']/@name")
是否有使用XPath搜索的方式,去除所有破折号和空格,只留下数字?
感谢
广东话你替换所有“”和”?将它们从您的文本中删除?林不熟悉Python,但据我所知是没有办法做你想要什么使用XPath只 –
也许我可以做一个巨大的,如果:-( – itwb
你或许可以创建一个正则表达式语句来替换任何“ - ”或' “那是<值名称=‘ACCOUNT_NUMBER’>标签或查询之间的所有瓦尔[@account_number]使用XPath节点和重写他们的价值 –