11

私は、カスタム XML ファイルを生成してクライアント アプリケーションに送り返す必要があるソフトウェアに取り組んできました。XML ファイルを生成するための Ruby/Rails の世界の現在のソリューションは、せいぜい遅いです。ビルダーまたはイベント Nokogiri を使用すると、優れた構文があり、保守しやすいソリューションですが、時間と処理が多すぎます。

私は間違いなくERBに行くことができました.ERBは、XML全体を手作業で構築することを犠牲にして、かなりの速度を提供します。

HAMLは優れたツールであり、優れた単純な構文を持ち、かなり高速です。しかし、それを使用して純粋な XML ファイルを作成するのに苦労しています。いったいそれは可能なのだろうか?

これを行う方法、HAML から完全で有効な XML を構築する方法を示すコードまたはドキュメントへのポインタを持っている人はいますか?

4

7 に答える 7

38

HAML で XML を実行するのは簡単です。テンプレートを次のように開始するだけです。

!!! XML

生産する

<?xml version='1.0' encoding='utf-8' ?>

次に、@beanish が前述したように、「独自のタグを作成」します。

%test
  %test2 hello
  %item{:name => "blah"}

取得するため

<test>
  <test2>hello</test2>
  <item name='blah'></item>
</test>

詳細: http://haml.info/docs/yardoc/file.REFERENCE.html#doctype_

于 2010-07-11T13:11:01.993 に答える
8
%test
  %test2 hello
  %item{:name => "blah"}

hamlを実行します

haml hamltest.haml test.xml

ブラウザでファイルを開く

<test>
  <test2>hello</test2>
  <item name='blah'></item>
</test>

HAMLリファレンスでは、htmlタグについて説明し、いくつかの例を示しています。 HAMLリファレンス

于 2010-05-10T18:55:48.107 に答える
5

これは、xml ドキュメントに役立ついくつかのことを示しています。

!!! XML
%root{'xmlns:foo' => 'http://myns'}
  -# Note: :dashed-attr is invalid syntax
  %dashed-tag{'dashed-attr' => 'value'} Text
  %underscore_tag Text
  - ['apple', 'orange', 'pear'].each do |fruit|
    - haml_tag(fruit, "Yummy #{fruit.capitalize}!", 'fruit-code' => fruit.upcase)
  %foo:nstag{'foo:nsattr' => 'value'}

出力:

<?xml version='1.0' encoding='utf-8' ?>
<root xmlns:foo='http://myns'>
  <dashed-tag dashed-attr='value'>Text</dashed-tag>
  <underscore_tag>Text</underscore_tag>
  <apple fruit-code='APPLE'>Yummy Apple!</apple>
  <orange fruit-code='ORANGE'>Yummy Orange!</orange>
  <pear fruit-code='PEAR'>Yummy Pear!</pear>
  <foo:nstag foo:nsattr='value'></foo:nstag>
</root>

のようなその他のメソッドについては、 haml リファレンスの Haml::Helpers リンクを参照してくださいhaml_tag

属性に二重引用符を使用する場合は、

参照: https://stackoverflow.com/a/967065/498594

またはレールの外側で使用:

>> Haml::Engine.new("%tag{:name => 'value'}", :attr_wrapper => '"').to_html
=> "<tag name=\"value\"></tag>\n"
于 2012-07-06T18:02:31.263 に答える
1

Haml は HTML と同じくらい簡単に XML を生成できます (私はこれを FBML と XHTML に使用しました)。どのような問題がありますか?

于 2010-05-11T01:26:52.030 に答える
0

私は HAML を使用していませんが、それを機能させることができない場合、別のオプションはBuilderです。

于 2010-05-11T01:30:04.637 に答える
-1

<?xml version = "1.0" encoding = "UTF-8"?>などのxmlヘッダーを作成するのはどうですか?

于 2010-06-24T14:27:07.487 に答える
-3

それは可能であるべきです。結局、メモ帳でプレーンな古い XML を作成できます。

于 2010-05-10T18:42:14.020 に答える