这可能是一个非常菜鸟的问题,但我很困惑。
我有以下代码,它解析一个 XML 文件并将每个元素放入一个表中。我的问题是每行中并不总是有九个元素,并且每个元素的名称在 XML 文件之间发生变化。有什么方法可以创建一个遍历每一行的循环(不知道元素名称(col0、col1 等))并将其放入表中?
XML 是这样的:
<row>
<Col0>titles</Col0>
<Col1>more titles</Col1>
<Col2>title</Col2>
<Col3>name</Col3>
<Col4>another name</Col4>
<Col5>different name</Col5>
<Col6></Col6>
<Col7></Col7>
<Col8></Col8>
</row>
<row>
<Col0>5:58</Col0>
<Col1>-</Col1>
<Col2>6:08</Col2>
<Col3>6:11</Col3>
<Col4>6:15</Col4>
<Col5>6:19</Col5>
<Col6></Col6>
<Col7></Col7>
<Col8></Col8>
</row>
等....
这是我的代码:
<script type="text/javascript">
$(document).ready(function()
{
$.get('newlayout.xml', function(d){
$('.tabl').append('<table>');
$(d).find('row').each(function(){
var $row = $(this);
var col01 = $row.find('Col0').text();
var col02 = $row.find('Col1').text();
var col03 = $row.find('Col2').text();
var col04 = $row.find('Col3').text();
var col05 = $row.find('Col4').text();
var col06 = $row.find('Col5').text();
var col07 = $row.find('Col6').text();
var col08 = $row.find('Col7').text();
var col09 = $row.find('Col8').text();
html = '<tr>'
html += '<td style="width:80px"> ' + col01 + '</td>';
html += '<td style="width:80px"> ' + col02 + '</td>' ;
html += '<td style="width:80px"> ' + col03 + '</td>' ;
html += '<td style="width:80px"> ' + col04 + '</td>' ;
html += '<td style="width:80px"> ' + col05 + '</td>' ;
html += '<td style="width:80px"> ' + col06 + '</td>' ;
html += '<td style="width:80px"> ' + col07 + '</td>' ;
html += '<td style="width:80px"> ' + col08 + '</td>' ;
html += '<td style="width:80px"> ' + col09 + '</td>' ;
html += '</tr>';
$('.tabl').append($(html));
});
});
});
提前致谢,
汤姆
最佳答案
尝试以下操作:
$('row').each(function(){
var $row = $(this);
$('.tabl').append($('<tr></tr>').append($row.children().wrapInner('<td style="width:80px"></td>').find('td')));
})
我想您可以了解这里发生的事情。如果没有,请离开。这主要是理解不同 jQuery 函数的问题,对此没有什么比 api.jquery.com 更好的了。
编辑: This version通过仅选择那些作为某物的父级(即非空)的单元格来摆脱空单元格:
$('row').each(function(){
var $row = $(this);
$('.tabl').append($('<tr></tr>').append($row.children().wrapInner('<td style="width:80px"></td>').find('td:parent')));
})
关于jQuery:将行数据不一致的XML解析成表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5846853/
我有一个字符串input="maybe(thisis|thatwas)some((nice|ugly)(day|night)|(strange(weather|time)))"Ruby中解析该字符串的最佳方法是什么?我的意思是脚本应该能够像这样构建句子:maybethisissomeuglynightmaybethatwassomenicenightmaybethiswassomestrangetime等等,你明白了......我应该一个字符一个字符地读取字符串并构建一个带有堆栈的状态机来存储括号值以供以后计算,还是有更好的方法?也许为此目的准备了一个开箱即用的库?
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我正在使用ruby1.9解析以下带有MacRoman字符的csv文件#encoding:ISO-8859-1#csv_parse.csvName,main-dialogue"Marceu","Giveittohimóhe,hiswife."我做了以下解析。require'csv'input_string=File.read("../csv_parse.rb").force_encoding("ISO-8859-1").encode("UTF-8")#=>"Name,main-dialogue\r\n\"Marceu\",\"Giveittohim\x97he,hiswife.\"\
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
rails中是否有任何规定允许站点的所有AJAXPOST请求在没有authenticity_token的情况下通过?我有一个调用Controller方法的JqueryPOSTajax调用,但我没有在其中放置任何真实性代码,但调用成功。我的ApplicationController确实有'request_forgery_protection'并且我已经改变了config.action_controller.consider_all_requests_local在我的environments/development.rb中为false我还搜索了我的代码以确保我没有重载ajaxSend来发送
简而言之错误:NOTE:Gem::SourceIndex#add_specisdeprecated,useSpecification.add_spec.Itwillberemovedonorafter2011-11-01.Gem::SourceIndex#add_speccalledfrom/opt/local/lib/ruby/site_ruby/1.8/rubygems/source_index.rb:91./opt/local/lib/ruby/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:275:in`==':und
我正在使用ruby2.1.0我有一个json文件。例如:test.json{"item":[{"apple":1},{"banana":2}]}用YAML.load加载这个文件安全吗?YAML.load(File.read('test.json'))我正在尝试加载一个json或yaml格式的文件。 最佳答案 YAML可以加载JSONYAML.load('{"something":"test","other":4}')=>{"something"=>"test","other"=>4}JSON将无法加载YAML。JSON.load("
两个gsub产生不同的结果。谁能解释一下为什么?代码也可在https://gist.github.com/franklsf95/6c0f8938f28706b5644d获得.ver=9999str="\tCFBundleDevelopmentRegion\n\ten\n\tCFBundleVersion\n\t0.1.190\n\tAppID\n\t000000000000000"putsstr.gsub/(CFBundleVersion\n\t.*\.).*()/,"#{$1}#{ver}#{$2}"puts'--------'putsstr.gsub/(CFBundleVersio
我有一个电子邮件表格。但是我正在制作一个测试电子邮件表单,用户可以在其中添加一个唯一的电子邮件,并让电子邮件测试将其发送到该特定电子邮件。为了简单起见,我决定让测试电子邮件通过ajax执行,并将整个内容粘贴到另一个电子邮件表单中。我不知道如何将变量从我的HAML发送到我的Controllernew.html.haml-form_tagadmin_email_blast_pathdoSubject%br=text_field_tag'subject',:class=>"mass_email_subject"%brBody%br=text_area_tag'message','',:nam
我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315