如何使用powershell在xml文件中使用通配符
我希望它返回属性以“\u FG”结尾的所有节点。但是如果我写下整个名称([@name='AKG\u PP\u GY\u FG']),它似乎不起作用,它会返回节点。为什么通配符在这种情况下不起作用?您可以尝试使用如何使用powershell在xml文件中使用通配符,powershell,Powershell,我希望它返回属性以“\u FG”结尾的所有节点。但是如果我写下整个名称([@name='AKG\u PP\u GY\u FG']),它似乎不起作用,它会返回节点。为什么通配符在这种情况下不起作用?您可以尝试使用$=或结束符(),但由于您使用的是PowerShell,这可能不起作用,因为PowerShell仍然使用XPath 1.0: XPath 2.0、3.0 $xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[
$=
或结束符()
,但由于您使用的是PowerShell,这可能不起作用,因为PowerShell仍然使用XPath 1.0:
XPath 2.0、3.0
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[@NAME='*_FG']")
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[ends-with(@NAME,'_FG')]")
对于XPath 1.0(PowerShell),请使用:
XPath 1.0
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[@NAME='*_FG']")
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[ends-with(@NAME,'_FG')]")
当
\u FG
可以出现在字符串中的任何位置时,您可以使用XPath 1.0中也支持的contains()
您可以尝试$=
或ends-with()
,但由于您使用的是PowerShell,这可能不起作用,因为PowerShell仍然使用XPath 1.0:
XPath 2.0、3.0
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[@NAME='*_FG']")
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[ends-with(@NAME,'_FG')]")
对于XPath 1.0(PowerShell),请使用:
XPath 1.0
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[@NAME='*_FG']")
$xml.selectnodes("/POWERMART/REPOSITORY/FOLDER//TRANSFORMFIELD[ends-with(@NAME,'_FG')]")
当
\u FG
可以出现在字符串中的任何位置时,可以使用contains()
XPath 1.0中也支持它$=不起作用,我不想使用结尾,因为有时_DT可能出现在开头或中间$=不起作用,我不想使用结尾,因为有时_DT可能出现在开头或中间