1

有没有一种使用 Cake 构建自动化系统从文件中检索 XML 值的简单方法?

我一直在研究Cake.Common.Xml 命名空间,但一切似乎都针对修改 ( XmlPoke) 或转换 ( XmlTransformation) XML。这些方法的文档使它们看起来适合准备 XML 以便在以后的构建步骤中使用,因此它们不会返回任何内容。

理想情况下,我只想进入FilePath带有 XPath 查询字符串的对象并获取结果值。

具体来说,我正在尝试从 Xamarin.Android 项目的 AndroidManifest.xml 中提取值,以用于从 Cake.Xamarin 调用中命名生成的 APK,但似乎此功能应该处于 Cake.Common.Xml 级别。

4

2 回答 2

7

Cake v0.8.0 开始,现在有XmlPeekfromCake.Common.Xml.XmlPeekAliases命名空间。您向它传递一个FilePath实例和一个 XPath 查询(带有名称空间之类的可选设置),它将返回一个字符串。

例如,给定一些像这样的本地 XML 文件……</p>

<some>
    <nested>
        <thing someattribute="attributevalue" />
        <otherthing>some text value</otherthing>
    </nested>
</some>

例如,要获取一个属性的值……</p>

var attributeValue = XmlPeek(File("example.xml"),
    "/some/nested/thing/@someattribute")

…会给你一串attributevalue.

并获取文本节点值……</p>

var textNodeValue = XmlPeek(File("example.xml"),
    "/some/nested/otherthing/text()");

…会给你一串some text value.

于 2016-01-19T21:08:07.590 回答
1

正如您显然知道的(因为您创建了它),有一个活动的 Cake 请求请求来添加此功能:

https://github.com/cake-build/cake/pull/641

一旦准备好,这个拉取请求将被拉入 Cake,并且该功能将在 Cake 中开箱即用。

于 2016-01-17T21:14:06.483 回答