草庐IT

Nokogiri

全部标签

ruby - 带有 dict 元素的 Plist XPath 查询

我正在尝试通过Nokigiri从plist的iTunes库导出中加载歌曲名称:doc=Nokogiri::XML(打开(文件.路径))@songs=Array.newdoc.xpath().eachdo|n|@songs.push(n)#appenddatatoarrayendplist的开头如下所示:MajorVersion1MinorVersion1Date2014-10-15T22:52:19ZApplicationVersion11.4Features5ShowContentRatingsMusicFolderfile://localhost/Users/mike/Music/

ruby - 使用 Ruby Savon 验证针对 WSDL 的 XML 响应

我正在使用Ruby/Cucumber/Savon来自动化Soap网络服务。我需要验证对wsdl文件的响应。Savon文档没有在任何地方提及验证XML响应。有谁知道这样做的好方法吗?谢谢,哈夫吉尔 最佳答案 优秀Nokogirilibrary支持XMLschema(XSD)validation用于SOAP消息(即WSDL的“类型”部分应包含引用或内联XSD)。xsd=Nokogiri::XML::Schema(File.read(SCHEMA_FILE))doc=Nokogiri::XML(File.read(XML_FILE))xs

ruby - Nokogiri 和 concat()

如何在Nokogirixpath表达式中使用concat()?我试过:xml.xpath("concat(/root/a/text(),/root/b/text())")但是失败了:ArgumentError:node_setmustbeaNokogiri::XML::NodeSet实际上,Nokogiri似乎只接受以“.”开头的xpath表达式。或“/”,所以我尝试了这些:xml.xpath(".concat(/root/a/text(),/root/b/text())")xml.xpath("/concat(/root/a/text(),/root/b/text())")xml.x

ruby - Nokogiri::XML::Reader - 处理大型 XML 文件并跳过不感兴趣的节点

我有一些格式如下所示的xml,我正在尝试使用Nokogiri::XML::Reader进行解析,因为文件大小非常大(~1GB)。该文件有很多packets以下格式。来自每个packet我需要收集frame.time_epoch,s1ap.procedureCode.我目前正在做以下事情。data=[]file=`some_file.xml`reader=Nokogiri::XML::Reader(File.open(file))reader.eachdo|node|if(node.name=='packet'&&node.node_type==Nokogiri::XML::Reader

ruby - 如何使用 Nokogiri 阅读器界面告知节点的行号?

我正在尝试编写一个Nokogiri脚本,它将grepXML包含ASCII双引号(«"»)的文本节点。因为我想要类似grep的输出,所以我需要行号和每行的内容。但是,我无法看到如何判断元素开始的行号。这是我的代码:require'rubygems'require'nokogiri'ARGV.eachdo|filename|xml_stream=File.open(filename)reader=Nokogiri::XML::Reader(xml_stream)titles=[]text=''grab_text=falsereader.eachdo|elem|ifelem.node_typ

ruby-on-rails - 测试 Nokogiri XML 的属性

使用RSpec我可以/应该如何测试以确保元素存在并具有指定的值在我的示例中,我希望确保我有一个值为1.0的EnvelopeVersion,我还希望看到一个测试来确保EnvelopeVersion存在defself.xml_headerbuilder=Nokogiri::XML::Builder.newdo|xml|xml.Root{xml.EnvelopeVersion"1.0"}endbuilder.to_xmlend我已经试过了,但是它失败了undefinedmethod`has_node?'为了#it'shouldcreatevalidheader'dodoc=GEM::xml_

ruby - Nokogiri 的 xml 输出上的命名空间

我正在尝试使用nokogiri隔离使用namespace的xml文档的一部分:require'nokogiri'xml=""n=Nokogiri.XML(xml)n.xpath("//s:One",:s=>"http://nmsc.com/nmsc")[0].to_xml这会忽略命名空间并简单地输出""如何使用正确的命名空间生成XML,即:?有趣的是命名空间在那里:>n.xpath("//s:One",:s=>"http://nmsc.com/nmsc")[0]=>#(Element:0x3fb1a05d0ed0{name="One",namespace=#(Namespace:0x3

ruby - 使用多个源 XML 文件的 Nokogiri XSLT 转换

我想使用Nokogiri翻译XML。我构建了一个XSL,一切正常。我还在Intellij中对其进行了测试。我的数据来自两个XML文件。当我试图让Nokogiri进行转换时,我的问题出现了。我似乎无法找到一种方法让它解析多个源文件。这是我从文档中使用的代码:require'Nokogiri'doc1=Nokogiri::XML(File.read('F:/transcoder/xslt_repo/core_xml.xml',))xslt=Nokogiri::XSLT(File.read('F:/transcoder/xslt_repo/google.xsl'))putsxslt.tran

xml - 获取 XSLT 当前节点,格式化为 XPath 查询?

我有以下代码块获取树下节点的名称,如下所示:节/页/子页但我希望能够将其归结为以下内容(只是弥补):部分[@id='someId']/page/subPage[@user='UserA']/@title我从其中一篇StackOverflow帖子中找到了以下代码:/这给了我一条直路,但我想在它上面运行更多逻辑以使其包含@id(或相关属性),也许还有一些我现在想不到的东西。执行此操作的最佳方法是什么?我已经检查过EXSLT函数,它可能会起作用,但也许你们已经用更好的方法解决了这个问题。有什么想法吗?如果有帮助,我正在使用ruby​​的nokogiri来解析xml/xslt。非常感谢,兰斯

ruby - 如何使用 Nokogiri 拆分 HTML 文档?

现在,我将HTML文档拆分成如下小块:(正则表达式简化-跳过标题标签内容和结束标签)document.at('body').inner_html.split(/]*>/i).collectdo|fragment|Nokogiri::HTML(fragment)end有没有更简单的方法来执行该拆分?文档非常简单,只有标题、段落和格式化文本。例如:MainSub1Text-----Sub2Text-----Sub2.1Text-----Sub2.2Text对于那个样本,我需要四block。 最佳答案 我只需要做类似的事情。我将一个大的H