有没有一种使用Cake构建自动化系统从文件中检索XML值的简单方法?
我一直在寻找Cake.Common.Xml命名空间,但一切似乎都适合于修改(XmlPoke)或转换(XmlTransformation)XML.这些方法的文档使它们看起来适合于准备XML以供后续构建步骤使用,因此它们不返回任何内容.
理想情况下,我想直接FilePath使用XPath查询字符串进入对象并获取结果值.
具体来说,我试图从Xamarin.Android项目的AndroidManifest.xml中提取值,用于从Cake.Xamarin调用命名生成的APK,但似乎这个功能应该在Cake.Common.Xml级别.
从Cake v0.8.0开始,现在XmlPeek从Cake.Common.Xml.XmlPeekAliases命名空间开始.你传递一个FilePath实例和一个XPath查询(带有命名空间之类的可选设置),它将返回一个字符串.
例如,给定一些像这样的本地XML文件......
<some>
<nested>
<thing someattribute="attributevalue" />
<otherthing>some text value</otherthing>
</nested>
</some>
Run Code Online (Sandbox Code Playgroud)
例如,获取属性的值...
var attributeValue = XmlPeek(File("example.xml"),
"/some/nested/thing/@someattribute")
Run Code Online (Sandbox Code Playgroud)
......会给你一串attributevalue.
并获得文本节点值...
var textNodeValue = XmlPeek(File("example.xml"),
"/some/nested/otherthing/text()");
Run Code Online (Sandbox Code Playgroud)
......会给你一串some text value.