首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在powershell中使用xpath选择xml中元素的值

在powershell中使用xpath选择xml中元素的值
EN

Stack Overflow用户
提问于 2020-06-09 21:07:12
回答 2查看 65关注 0票数 0

我想要元素RN的值(所以,20200121) (我在这里找到了一个示例并修改了它)

文件位于d:\test.xml

我试过了:

代码语言:javascript
复制
[xml] $xdoc =  get-content “d:\test.xml”  
$xdoc |  Select-Xml “//RN.value” |  % { $_.Node.InnerText } |  select  -Unique

它会失败并返回错误

代码语言:javascript
复制
Select-Xml : Cannot validate argument on parameter 'Xml'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.
At line:1 char:10
+ $xdoc |  Select-Xml “//RN” |  % { $_.Node.InnerText } |  select   ...
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Select-Xml], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.SelectXmlCommand

我也试过了:

代码语言:javascript
复制
[xml] $xdoc =  get-content “d:\test.xml”
$xdoc |  Select-Xml “//RN.value” |  % { $_.Node.InnerText } |  select  -Unique

,它既没有错误,也没有输出。

EN

回答 2

Stack Overflow用户

发布于 2020-06-09 21:35:35

这似乎是一个名称空间解析问题:

代码语言:javascript
复制
$values = $xdoc |Select-Xml '//top:RN/top:value' -Namespace @{top='http://www.test.int'}|%{$_.Node.InnerText} |Select -Unique

这应该会起作用。

票数 0
EN

Stack Overflow用户

发布于 2020-06-09 23:14:34

有多种方式可以不引用名称空间:how to ignore namespaces with XPath

代码语言:javascript
复制
$xdoc.message.bamessage.rn.value

20200121


select-xml '//*[local-name()="value"]' test.xml | % node

#text
-----
20200121
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62283376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档