そのため、C#の質問でのテキスト解析では、YAMLを使用するようになりました。私が推薦されたこのライブラリで壁にぶつかっているので、これは急ごしらえです。
heading:
name: A name
taco: Yes
age: 32
heading:
name: Another name
taco: No
age: 27
等々。それは有効ですか?
そのため、C#の質問でのテキスト解析では、YAMLを使用するようになりました。私が推薦されたこのライブラリで壁にぶつかっているので、これは急ごしらえです。
heading:
name: A name
taco: Yes
age: 32
heading:
name: Another name
taco: No
age: 27
等々。それは有効ですか?
部分的に。YAMLは、複数の連続する「ドキュメント」の概念をサポートしています。これがあなたがここでやろうとしていることであるなら、そうです、それは正しいです-2つのドキュメント(またはドキュメントフラグメント)があります。より明確にするには、次のように3つのダッシュで区切る必要があります。
---
heading:
name: A name
taco: Yes
age: 32
---
heading:
name: Another name
taco: No
age: 27
一方、それらを同じドキュメントの一部にしたい場合(逆シリアル化すると、2つの要素を持つリストになるように)、次のように記述します。インデントレベルには特に注意してください。
- heading:
name: A name
taco: Yes
age: 32
- heading:
name: Another name
taco: No
age: 27
一般に、YAMLは簡潔で人間が読み取り/編集可能ですが、実際には人間が書き込み可能ではないため、常にライブラリを使用して生成する必要があります。また、YAMLの異なるバージョン間でいくつかの重大な変更が存在することに注意してください。これは、標準の異なるバージョンに準拠する異なる言語のライブラリを使用している場合に問題になる可能性があります。
さて、YAML は窓の外に出てしまったようです。人間が書き込み可能で読み取り可能なものが必要です。さらに、この C# の実装...動作しているかどうかはわかりません。ドキュメントは、いくつかの 1 行のコード例で構成されています。独自の YAML ファイルをバーフする、古い学生プロジェクトです。私が見つけた唯一の他の C# YAML パーサーは、MS-PL を使用していますが、これはあまり使い慣れていません。
私は自分のフォーマットを展開することになるかもしれません。私がやりたいことは、キーを値に関連付けることだけです。
これを試してください(オンラインYAMLパーサー)。
何もダウンロードしたり、何かをしたりする必要はありません。そこに行って、コピーして貼り付けてください。それでおしまい。
答えを与えるはずのKwalifyと呼ばれるYAMLバリデーターがあるようです。あなたは文字列のトークン化をやめるべきです、男。パーサーを書くのは楽しいです:)
CodeProjectには次の場所に1つあります。
http://www.codeproject.com/KB/recipes/yamlparser.aspx
あまり試したことはありませんが、一見の価値があります。
開発中の.NET用の別のYAMLライブラリがあります。現在、YAMLストリームの読み取りをサポートしています。WindowsとMonoでテストされています。書き込みサポートは現在実装されています。
オンライン yaml パーサーで出力を確認できます。
ご覧のとおり、作成された見出しノードは 1 つだけです。