我需要一些帮助来解决我无法弄清楚的问题。
我有以下 xml:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="prueba.xsl"?>
<ficha>
<titulo></titulo>
<bloque>
<texto></texto>
<pregunta id="1" tipo="checkSN">
<texto>Acredita curso bienestar animal minimo 20 h</texto>
</pregunta>
<pregunta id="2" tipo="texto">
<texto>Sistemática inspección</texto>
</pregunta>
<grupo>
<texto>trato adecuado enfermos</texto>
<pregunta id="3" tipo="desplegableSNP">
<texto>Recetas correspondientes</texto>
</pregunta>
<pregunta id="4" tipo="multiple">
<texto>Disponen de comida y bebida</texto>
</pregunta>
</grupo>
<grupo>
<texto>
Heridos/Enfermos
</texto>
<pregunta id="5" tipo="multiple">
<texto>Se aprecian heridos o enfermos momento inspeccion</texto>
</pregunta>
<pregunta id="6" tipo="multiple">
<texto>Separados del resto</texto>
</pregunta>
<pregunta id="7" tipo="multiple">
<texto>Disponen de comida y bebida</texto>
</pregunta>
<pregunta id="8" tipo="multiple">
<texto>Disponen de comida y bebida</texto>
</pregunta>
</grupo>
</bloque>
<bloque>
<texto>Condiciones específicas de alojamiento y manejo</texto>
</bloque>
</ficha>
和下面的 XSL 表:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<head>
<link rel="stylesheet" type="text/css" href="prueba.css" />
</head>
<body>
<h2><xsl:value-of select="/ficha/titulo"/></h2>
<h3>1: <xsl:value-of select="//pregunta[1]/@id"/></h3>
<h3>2: <xsl:value-of select="//pregunta[2]/@id"/></h3>
<h3>3: <xsl:value-of select="//pregunta[3]/@id"/></h3>
<h3>4: <xsl:value-of select="//pregunta[4]/@id"/></h3>
<h3>5: <xsl:value-of select="//pregunta[5]/@id"/></h3>
<h3>6: <xsl:value-of select="//pregunta[6]/@id"/></h3>
<h3>7: <xsl:value-of select="//pregunta[7]/@id"/></h3>
<h3>8: <xsl:value-of select="//pregunta[8]/@id"/></h3>
<h3>c: <xsl:value-of select="count(//pregunta)"/></h3>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
当我加载它们时,我得到了这个结果:
1:1 2:2 3:7 4:8 5: 6: 7: 8: c: 8
我不明白为什么它忽略了一些节点。如果我包含新节点或移动它们,它总是显示 4 个结果,从位置 5 到 8 的节点它从不显示任何内容。我需要使用这种类型的选择,因为它来自 Java 应用程序,样式表仅用于测试。
最佳答案
将 //pregunta 放在括号中。将您的 XPath 表达式更改为 (//pregunta)[1]/@id、(//pregunta)[2]/@id ...
没有括号,例如//pregunta[4] 计算所有位于其父元素第四个位置的 pregunta 元素。
但是 (//pregunta)[4] 首先计算所有 pregunta 元素的序列,然后取该序列的第四个元素。
关于xml - XPATH 按位置选择返回不连贯的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6545856/
我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为
我有一个包含多个键的散列和一个字符串,该字符串不包含散列中的任何键或包含一个键。h={"k1"=>"v1","k2"=>"v2","k3"=>"v3"}s="thisisanexamplestringthatmightoccurwithakeysomewhereinthestringk1(withspecialcharacterslike(^&*$#@!^&&*))"检查s是否包含h中的任何键的最佳方法是什么,如果包含,则返回它包含的键的值?例如,对于上面的h和s的例子,输出应该是v1。编辑:只有字符串是用户定义的。哈希将始终相同。 最佳答案
我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll
所以我开始关注ruby,很多东西看起来不错,但我对隐式return语句很反感。我理解默认情况下让所有内容返回self或nil但不是语句的最后一个值。对我来说,它看起来非常脆弱(尤其是)如果你正在使用一个不打算返回某些东西的方法(尤其是一个改变状态/破坏性方法的函数!),其他人可能最终依赖于一个返回对方法的目的并不重要,并且有很大的改变机会。隐式返回有什么意义?有没有办法让事情变得更简单?总是有返回以防止隐含返回被认为是好的做法吗?我是不是太担心这个了?附言当人们想要从方法中返回特定的东西时,他们是否经常使用隐式返回,这不是让你组中的其他人更容易破坏彼此的代码吗?当然,记录一切并给出
状态:我正在构建一个应用程序,其中需要一个可供用户选择颜色的字段,该字段将包含RGB颜色代码字符串。我已经测试了一个看起来很漂亮但效果不佳的。它是“挑剔的颜色”,并托管在此存储库中:https://github.com/Astorsoft/picky-color.在这里我打开一个关于它的一些问题的问题。问题:请建议我在Rails3应用程序中使用一些颜色选择器。 最佳答案 也许页面上的列表jQueryUIDevelopment:ColorPicker为您提供开箱即用的产品。原因是jQuery现在包含在Rails3应用程序中,因此使用基
为什么以下不同?Time.now.end_of_day==Time.now.end_of_day-0.days#falseTime.now.end_of_day.to_s==Time.now.end_of_day-0.days.to_s#true 最佳答案 因为纳秒数不同:ruby-1.9.2-p180:014>(Time.now.end_of_day-0.days).nsec=>999999000ruby-1.9.2-p180:015>Time.now.end_of_day.nsec=>999999998
我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'
在Ruby1.9.3(可能还有更早的版本,不确定)中,我试图弄清楚为什么Ruby的String#split方法会给我某些结果。我得到的结果似乎与我的预期相反。这是一个例子:"abcabc".split("b")#=>["a","ca","c"]"abcabc".split("a")#=>["","bc","bc"]"abcabc".split("c")#=>["ab","ab"]在这里,第一个示例返回的正是我所期望的。但在第二个示例中,我很困惑为什么#split返回零长度字符串作为返回数组的第一个值。这是什么原因呢?这是我所期望的:"abcabc".split("a")#=>["bc"