我的 XML 是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person>
<id>sKQ0F4h1ft</id>
<first-name>Govind</first-name>
<last-name>Malviya</last-name>
<positions total="3">
<position>
<id>sdfsdfsf</id>
<title>Founder & CEO</title>
<summary>fsdsdf</summary>
<start-date>
<year>2010</year>
<month>12</month>
</start-date>
<is-current>true</is-current>
<company>
<name>sdfsdf</name>
<industry>Internet</industry>
</company>
</position>
<position>
<id>17908sdfsdf4226</id>
<title>Engineer-in-traning</title>
<summary></summary>
<start-date>
<year>2010</year>
<month>3</month>
</start-date>
<is-current>true</is-current>
<company>
<id>sdfsdf</id>
<name>sdfsdf</name>
<industry>sfsdf sdfs sdf </industry>
</company>
</position>
<position>
<id>sdfsdff</id>
<title>Graduate Researcher</title>
<summary></summary>
<start-date>
<year>2006</year>
<month>8</month>
</start-date>
<end-date>
<year>2009</year>
<month>1</month>
</end-date>
<is-current>false</is-current>
<company>
<id>sdfsdf</id>
<name>University of Alberta</name>
<type>Educational Institution</type>
<industry>Higher Education</industry>
</company>
</position>
</positions>
</person>
类是
[Serializable, XmlRoot("person")]
public class FooUserProfile
{
[XmlElement("id")]
public string ID { get; set; }
[XmlElement("first-name")]
public string FirstName { get; set; }
[XmlElement("last-name")]
public string LastName { get; set; }
[XmlElement("positions")]
public List<FooPosition> Positions { get; set; }
}
[Serializable]
public class FooPosition
{
[XmlElement("id")]
public string ID { get; set; }
[XmlElement("title")]
public string Title { get; set; }
[XmlElement("summary")]
public string Summary { get; set; }
[XmlElement("start-date")]
public FooDate StartDate { get; set; }
[XmlElement("end-date")]
public FooDate EndDate { get; set; }
[XmlElement("is-current")]
public string IsCurrent { get; set; }
[XmlElement("company")]
public FooPositionCompany Company { get; set; }
}
[Serializable]
public class FooDate
{
[XmlElement("year")]
public string Year { get; set; }
[XmlElement("month")]
public string Month { get; set; }
}
[Serializable]
public class FooPositionCompany
{
[XmlElement("id")]
public string ID { get; set; }
[XmlElement("name")]
public string Name { get; set; }
[XmlElement("type")]
public string Type { get; set; }
[XmlElement("industry")]
public string Industry { get; set; }
}
但是在位置上我得到的是空值,谁能告诉我哪里错了。
最佳答案
为了指定数组的 XML 元素名称(IList、ICollection 等)及其项,您必须使用属性 XmlArray 和 XmlArrayItem:
[Serializable, XmlRoot("person")]
public class FooUserProfile
{
/* The other members... */
[XmlArray("positions")]
[XmlArrayItem("position")]
public List<FooPosition> Positions { get; set; }
}
XmlElement 属性的作用是省略周围的 XML 数组元素并为 Xml 数组项命名:
[XmlRoot("Config")]
public class Foo
{
[XmlElement("Id")]
public string[] IdStringArrayWithStupidName;
}
序列化 XML:
<?xml version="1.0" encoding="?>
<Config>
<Id></Id>
<Id></Id>
</Config>
关于c# - Array 元素的 XML 反序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7832239/
我怎样才能完成http://php.net/manual/en/function.call-user-func-array.php在ruby中?所以我可以这样做:classAppdeffoo(a,b)putsa+benddefbarargs=[1,2]App.send(:foo,args)#doesn'tworkApp.send(:foo,args[0],args[1])#doeswork,butdoesnotscaleendend 最佳答案 尝试分解数组App.send(:foo,*args)
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
通过rubykoans.com,我在about_array_assignment.rb中遇到了这两段代码你怎么知道第一个是非并行赋值,第二个是一个变量的并行赋值?在我看来,除了命名差异之外,代码几乎完全相同。4deftest_non_parallel_assignment5names=["John","Smith"]6assert_equal["John","Smith"],names7end45deftest_parallel_assignment_with_one_variable46first_name,=["John","Smith"]47assert_equal'John
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
如何在ruby中调用C#dll? 最佳答案 我能想到几种可能性:为您的DLL编写(或找人编写)一个COM包装器,如果它还没有,则使用Ruby的WIN32OLE库来调用它;看看RubyCLR,其中一位作者是JohnLam,他继续在Microsoft从事IronRuby方面的工作。(估计不会再维护了,可能不支持.Net2.0以上的版本);正如其他地方已经提到的,看看使用IronRuby,如果这是您的技术选择。有一个主题是here.请注意,最后一篇文章实际上来自JohnLam(看起来像是2009年3月),他似乎很自在地断言RubyCL
这个问题在这里已经有了答案:Arraysmisbehaving(1个回答)关闭6年前。是否应该这样,即我误解了,还是错误?a=Array.new(3,Array.new(3))a[1].fill('g')=>[["g","g","g"],["g","g","g"],["g","g","g"]]它不应该导致:=>[[nil,nil,nil],["g","g","g"],[nil,nil,nil]]