C#实现获取yaml文件中buildReleases父节点下所有的releaseID节点值(Int类型)以及其兄弟节点buildEnvironmentsbuildSystem的buildSystem子结点的值(String类型)
时间: 2024-09-23 21:01:14 浏览: 37
解决pycharm编辑区显示yaml文件层级结构遇中文乱码问题
在C#中,你可以使用`YamlDotNet`库来解析YAML文件,并通过递归或者其他遍历方法获取指定路径下的节点值。以下是一个简单的示例,展示了如何获取`buildReleases`下的`releaseID`节点值(假设它们是整数类型),以及`buildEnvironments`下的`buildSystem`子节点的值(字符串类型):
```csharp
using YamlDotNet.Reading;
using YamlDotNet.Serialization;
using System.Collections.Generic;
public class ReleaseData
{
public List<int> ReleaseIds { get; set; }
public Dictionary<string, string> BuildSystems { get; set; }
}
class Program
{
static void Main(string[] args)
{
var yamlText = File.ReadAllText("your_yaml_file.yaml"); // 替换为实际的yaml文件路径
var serializer = new YamlSerializer<ReleaseData>();
ReleaseData data;
try
{
data = serializer.Deserialize<ReleaseData>(yamlText);
}
catch (YamlException ex)
{
Console.WriteLine($"Error parsing YAML: {ex.Message}");
return;
}
// 获取 releaseIDs 和 buildSystem 子节点
foreach (var release in data.ReleaseIds)
{
Console.WriteLine($"Release ID: {release}");
}
foreach (var env in data.BuildSystems)
{
Console.WriteLine($"Build Environment: {env.Key}, Build System: {env.Value}");
}
}
}
```
在这个例子中,你需要创建一个名为`ReleaseData`的类来匹配你的YAML结构,然后通过`YamlSerializer`读取并处理数据。记得替换`"your_yaml_file.yaml"`为实际的YAML文件路径。
阅读全文