gpt4 book ai didi

c# - 用于自动完成过滤器的 Xpath 和正则表达式

转载 作者:太空宇宙 更新时间:2023-11-03 19:31:52 26 4
gpt4 key购买 nike

我有一个巨大的 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 ')]

注意:当然,更通用的表达式需要更通用的翻译模式。

关于c# - 用于自动完成过滤器的 Xpath 和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4409827/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com