gpt4 book ai didi

cakebuild - Cake PeekXml 没有 "ignore"命名空间

转载 作者:行者123 更新时间:2023-12-04 15:17:15 26 4
gpt4 key购买 nike

xmlns 属性不会被忽略是错误还是每个设计?

(蛋糕版本 0.33.0)

使用这样的 Xml(一个过于简化的 nuspec 文件):

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<!-- Continuously updated elements -->
<version>3.0.0</version>
</metadata>
</package>

我打了一个幼稚的电话 var x = XmlPeek( "my.nuspec", "/package/metadata/version/text()" );广告获取结果 x==null .

所以我像这样指定命名空间:
var settings = new XmlPeekSettings{
Namespaces = new Dictionary<string, string> {{
"ps", "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"
}}
};
var x = XmlPeek( "my.nuspec", "/ps:package/ps:metadata/ps:version/text()", settings);

并得到结果 x==3.0.0我预料到了。

最佳答案

这不是一个错误。

要忽略命名空间,您可以使用命名空间不可知的 xpath,例如 local-name() :

var x = XmlPeek( "my.nuspec", "/*[local-name() = 'package']/*[local-name() = 'metadata']/*[local-name() = 'version']/text()");

或者如果您只有一个 version节点:
var x = XmlPeek( "my.nuspec", "//*[local-name()='version']/text()");

但是要小心包含大量元素的文档 - 这可能会变得非常慢。

关于cakebuild - Cake PeekXml 没有 "ignore"命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56997666/

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