0
我嘗試以下,但被嚴重形成的輸出XML:如何使用XML Builder在rails中創建xml?
xml = Builder::XmlMarkup.new({:target => display })
xml.instruct!
xml.mail {
xml.documents {
xml.document {
xml.template {
xml.source "gallery"
xml.name "Postcard: Image fill front"
}
xml.sections {
xml.section {
xml.name "Text"
xml.text "Hello, world"
}
xml.section {
xml.name "Image"
xml.attachment "1136946686-3425"
}
} #sections
} #document
} #documents
xml.addresses {
xml.addressee {
xml.name "Me"
xml.address "Street"
xml.city "San Francisco"
xml.state "CA"
}
}
}
@xml_display = xml
我需要它看起來更像是這樣的:
<?xml version="1.0" encoding="UTF-8"?>
<mail>
<documents>
<document>
<template>
<source>gallery</source>
<name>Postcard: Image fill front</name>
</template>
<sections>
<section>
<name>Text</name>
<text>Hello, World!</text>
</section>
<section>
<name>Image</name>
<attachment>...attachment id...</attachment>
</section>
</sections>
</document>
</documents>
<addressees>
<addressee>
<name>John Doe</name>
<address>123 Main St</address>
<city>Anytown</city>
<state>AZ</state>
<postal-code>10000</postal-code>
</addressee>
</addressees>
</mail>
我的代碼最終在視圖中看起來像這樣(網頁的源文件):
<?xml version="1.0" encoding="UTF-8"?><mail/><documents/><document/><template/><source>gallery</source><name>Postcard: Image fill front</name>
注:最終的XML需要被髮布到一個URL,而且我在使用其他的客戶端,因此希望一切變得作爲正文傳遞的實例變量。
實例變量只是@xml_display = XML,但它不工作... :(
嗨,謝謝,是的,我檢查了它...它暗示我可以嵌套{}以及進行更改...仍然有422錯誤...也許我需要定義一個目標而不是將@ml分配給@instance? – Angela 2010-05-29 22:54:59
看着你更新的問題,你仍然需要傳遞一個變量到你的塊,然後使用該變量爲下一個元素。在我的例子中注意'| mail |'以及我如何使用'mail.documents'。 – theIV 2010-05-29 23:05:06
我明白了,讓我試試看,如何將整個xml發送到對象中?我嘗試使用{:target => @target},但它不顯示任何東西 – Angela 2010-05-30 06:49:12