我有一个巨大的 xml 文档。
类似的东西
<?xml version="1.0" encoding="utf-8"?>
<elements>
<element id="1" name="france" />
<element id="2" name="usa" />
<element id="3" name="Spaïn" />
<element id="4" name="spain and africa" />
<element id="5" name="italie and Spâin" />
</elements>
我想要这样的东西:
string str = "spain";
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(myXML);
// Xpath with regex or something very veloce
XmlNodeList xmlNodeList = xmlDoc.SelectNodes("//element"+ something);
xmlNodeList 将包含:
<element id="3" name="Spaïn" />
<element id="4" name="france with spâin and africa" />
<element id="5" name="italie and Spain" />
它必须忽略大小写
和口音
目前我已经
XmlNodeList xmlNodeList = xmlDoc.SelectNodes("/*/*[contains(concat(' ',translate(translate(@n,translate(@n, 'aaabcdefghiiijklmnopqrstuvwxyzâÂABCDEFGHïÏIJKLMNOPQRSTUVWXYZ', ''),''), 'âÂABCDEFGHïÏIJKLMNOPQRSTUVWXYZ','aaabcdefghiiijklmnopqrstuvwxyz'),' '),' "+prefix+" ')]");
@n = @name 和前缀可能是:“spain”或“Spain”或“Spaïn”,它给了我 0 个解决方案
请您参考如下方法:
使用
//element[contains(concat(' ',translate(@name,'SPAIN','spain'),' '),' spain ')]
编辑:现在,问题已经改变,但答案仍然...
只需在翻译模式中添加这些更改,例如:
//element[contains(concat(' ',
translate(@name,
'SPAÂâIÏïN',
'spaaaiiin'),
' '),
' spain ')]
注意:当然,更通用的表达式需要更通用的翻译模式。
