首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell Select-Xml :输入文档已超过MaxCharactersInDocument设置的限制

Powershell Select-Xml :输入文档已超过MaxCharactersInDocument设置的限制
EN

Stack Overflow用户
提问于 2016-02-15 23:07:35
回答 1查看 1.3K关注 0票数 0

我正在尝试在PowerShell中处理一个1.7 to的xml文件。我有下面这行代码,但它失败了:

代码语言:javascript
复制
PS C:\data> $badges = Select-Xml -Path .\Badges.xml -XPath "//badges/row[UserId='8152']"

但我得到以下错误:

代码语言:javascript
复制
Select-Xml : The file 'C:\data\Badges.xml' cannot be read: The input document has
exceeded a limit set by MaxCharactersInDocument.
At line:1 char:11
+ $badges = Select-Xml -Path .\Badges.xml -XPath "//badges/row[UserId='8152']"
+           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (C:\data\Badges.xml:String) [Select-Xml], ArgumentException
    + FullyQualifiedErrorId : ProcessingFile,Microsoft.PowerShell.Commands.SelectXmlCommand

对如何处理这个文件有什么想法吗?我应该从文件中得到十几个左右的元素,所以与整个文件的大小(大约有1500万个行元素)相比,输出是相当小的。

EN

回答 1

Stack Overflow用户

发布于 2016-02-16 06:06:17

Select-Xml具有硬编码限制MaxCharactersInDocument = 536870912 (0.5 for ),用于从文件加载文档。它不能处理和你一样大的文件。您需要自己加载XML文档,然后可以使用Select-Xml cmdlet或SelectNodes方法进行查询。

代码语言:javascript
复制
#Load document
$Xml=New-Object Xml
$Xml.Load((Convert-Path .\Badges.xml))

#Select-Xml cmdlet
Select-Xml -Xml $Xml -XPath "//badges/row[UserId='8152']"

#SelectNodes method
$Xml.SelectNodes("//badges/row[UserId='8152']")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35412715

复制
相关文章

相似问题

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