4

そのため、C#の質問でのテキスト解析では、YAMLを使用するようになりました。私が推薦されたこのライブラリで壁にぶつかっているので、これは急ごしらえです。

heading:
 name: A name
 taco: Yes
 age: 32

heading:
 name: Another name
 taco: No
 age: 27

等々。それは有効ですか?

4

8 に答える 8

11

部分的に。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の異なるバージョン間でいくつかの重大な変更が存在することに注意してください。これは、標準の異なるバージョンに準拠する異なる言語のライブラリを使用している場合に問題になる可能性があります。

于 2008-08-19T04:52:38.520 に答える
4

さて、YAML は窓の外に出てしまったようです。人間が書き込み可能読み取り可能なものが必要です。さらに、この C# の実装...動作しているかどうかはわかりません。ドキュメントは、いくつかの 1 行のコード例で構成されています。独自の YAML ファイルをバーフする、古い学生プロジェクトです。私が見つけた唯一の他の C# YAML パーサーは、MS-PL を使用していますが、これはあまり使い慣れていません。

私は自分のフォーマットを展開することになるかもしれません。私がやりたいことは、キーを値に関連付けることだけです。

于 2008-08-19T05:11:34.067 に答える
4

これを試してください(オンラインYAMLパーサー)

何もダウンロードしたり、何かをしたりする必要はありません。そこに行って、コピーして貼り付けてください。それでおしまい。

于 2011-02-23T22:40:27.060 に答える
3

答えを与えるはずのKwalifyと呼ばれるYAMLバリデーターがあるようです。あなたは文字列のトークン化をやめるべきです、男。パーサーを書くのは楽しいです:)

于 2008-08-19T04:51:05.000 に答える
2

CodeProjectには次の場所に1つあります。

http://www.codeproject.com/KB/recipes/yamlparser.aspx

あまり試したことはありませんが、一見の価値があります。

于 2008-12-12T00:47:21.307 に答える
2

開発中の.NET用の別のYAMLライブラリがあります。現在、YAMLストリームの読み取りをサポートしています。WindowsとMonoでテストされています。書き込みサポートは現在実装されています。

于 2008-08-26T23:37:37.730 に答える
1

オンライン yaml パーサーで出力を確認できます。

http://yaml-online-parser.appspot.com/?yaml=heading%3A%0D%0A+name%3A+A+name%0D%0A+taco%3A+Yes%0D%0A+age%3A +32%0D%0A%0D%0Aheading%3A%0D%0A+name%3A+Another+name%0D%0A+taco%3A+No%0D%0A+age%3A+27%0D%0A&type=json

ご覧のとおり、作成された見出しノードは 1 つだけです。

于 2009-08-19T09:51:08.407 に答える