XML构建器中的部分证明是非平凡的.
经过一些初步的谷歌搜索,我发现以下工作,虽然它不是100%
xml.foo do
xml.id(foo.id)
xml.created_at(foo.created_at)
xml.last_updated(foo.updated_at)
foo.bars.each do |bar|
xml << render(:partial => 'bar/_bar', :locals => { :bar => bar })
end
end
Run Code Online (Sandbox Code Playgroud)
这将解决问题,除了XML输出没有正确缩进.输出看起来类似于:
<foo>
<id>1</id>
<created_at>sometime</created_at>
<last_updated>sometime</last_updated>
<bar>
...
</bar>
<bar>
...
</bar>
</foo>
Run Code Online (Sandbox Code Playgroud)
该<bar>
元素应该在下面排列<last_updated>
的元素,它是一个孩子<foo>
是这样的:
<foo>
<id>1</id>
<created_at>sometime</created_at>
<last_updated>sometime</last_updated>
<bar>
...
</bar>
<bar>
...
</bar>
</foo>
Run Code Online (Sandbox Code Playgroud)
如果我将bar/_bar.xml.builder中的内容复制到模板中,那么效果很好,但事情就是不干.
我发现一个标题与此标题非常类似的帖子,但它没有给我我想要的答案.我试图在模型中使用builder.代码看起来像这样:
require 'builder'
class Document < ActiveRecord::Base
...
def create_xml
xml = Builder::XmlMarkup.new( :indent => 2)
...
end
...
end
Run Code Online (Sandbox Code Playgroud)
当我尝试执行此代码时,出现以下错误:
NameError: uninitialized constant ActiveRecord::Associations::Builder::XMLMarkup
Run Code Online (Sandbox Code Playgroud)
但是,当我在rails控制台中尝试相同的操作时,一切正常.
我错过了什么吗?任何帮助将非常感激.
我正在使用Ruby的XML Builder并尝试找到正确的语法来重新创建以下RSS 2.0声明:
<rss version="2.0"
xmlns:g="http://base.google.com/ns/1.0">
Run Code Online (Sandbox Code Playgroud)
使用XML Builder将上述块放在一起的合适方法是什么?
试图解析XML为JSON与xml2js,然后使用返回JSON来XML xmlbuilder(通常修改编程内容之后).
我认为这两个应该是补充,按照这篇文章https://github.com/oozcitak/xmlbuilder-js/issues/69.但是我遇到了一些困难,而且我必须得到正确的配置参数.
这是我正在运行的代码:
var xml = fs.readFileSync(__dirname + '/../xml/theme.xml', 'utf8');
xml2js.parseString(xml, { attrkey: '@', xmlns: true }, function(err, json) {
var xml2 = xmlbuilder.create(json,
{version: '1.0', encoding: 'UTF-8', standalone: true}
).end({pretty: true, standalone: true})
});
Run Code Online (Sandbox Code Playgroud)
这是原始XML的第一部分:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme">
<a:themeElements>
<a:clrScheme name="Office">
<a:dk1>
<a:sysClr val="windowText" lastClr="000000"/>
</a:dk1>
<a:lt1>
<a:sysClr val="window" lastClr="FFFFFF"/>
</a:lt1>
<a:dk2>
<a:srgbClr val="1F497D"/>
</a:dk2>
...
</a:themeElements>
</a:theme>
Run Code Online (Sandbox Code Playgroud)
这里; xml2js如何将其解析为JSON,这对我来说是正确的:
{
"a:theme": {
"@": {
"xmlns:a": …
Run Code Online (Sandbox Code Playgroud) 我有一个我正在研究的项目,我对Rails或Ruby不太了解.
我需要从用户输入生成XML文件.有人可以指导我使用任何可以快速,轻松地告诉我如何做到这一点的资源吗?
我正在使用xmlbulilder包在nodejs中生成xml,现在我的要求是向xml添加名称空间。例如
<nsA:root xmlns:nsA="namespaceA" xmlns:nsB="namespaceB">
<nsB:nodeA attrC="valC">nodeText</nsB:nodeA>
</nsA:root>
Run Code Online (Sandbox Code Playgroud)
我们该怎么做?感谢帮助!
我正在使用“xmlbuilder”node.js 模块来创建 xml 文件。我需要创建一个 CDATA 部分,如下所示:
<notestext><![CDATA[{Notes Text}]]></notestext>
Run Code Online (Sandbox Code Playgroud)
我参考了github链接,但没有找到任何有用的东西。
如何使用“xmlbuilder”node.js 模块在 xml 文件中创建此类 CDATA 部分?
let builder = require('xmlbuilder', { encoding: 'utf-8' });
let xml = builder.create('Slides');
xml.ele("notestext","<![CDATA[" + element.notes_text + "]]>");
xml.end({ pretty: true });
console.log(xml.toString());
Run Code Online (Sandbox Code Playgroud) 我想为 XML 响应创建通用布局文件。例如,我想将 RSS 的那些通用部分包装在布局中,并将内容生成在相应的视图文件中。
例如,
# in layout/rss.xml.builder
xml.instruct!
...... # other general stuff for RSS
yield
# in items/show.xml.builder
xml.item ......
Run Code Online (Sandbox Code Playgroud)
因此,项目显示视图无需担心 RSS 包装。
然而,产量不起作用,只呈现布局,但视图没有返回任何内容。
请帮忙。
xml-builder ×8
xml ×4
node.js ×3
ruby ×3
javascript ×1
layout ×1
npm ×1
xml-parsing ×1
yield ×1