我有一个问题,例如:
$myxml.SelectSingleNode('//space:XMIS', $space).provider.factories.property.resources[0].name;
我想从文本文件中读取属性'.provider.factories.property.resources [0] .name'并将它们分配给对象。 有人可以帮忙吗?我不知道如何动态地这样做。
答案 0 :(得分:1)
可以动态指定属性名称,例如:
$date = Get-Date
$prop1 = 'DayOfWeek'
$prop2 = 'value__'
$date.$prop1.$prop2
因此,请从文件中读取动态属性,并将每个属性分配给变量。这假设属性的深度是相同的。这可能行不通。另一种方法是对整个查询使用XPath,然后在txt文件中定义XPath,例如:
$ns = @{space = 'http://some-xml-namespace'}
$xpath = Get-Content query.txt -raw
Select-Xml -Xml $myxml -XPath $xpath -Namespace $ns
Content of query.txt
//space:XMIS/space:provider/space:factorties/space:property/space:resources[position()=1]@name
xpath模式只是一个猜测,因为我无法看到xml的结构。