草庐IT

Nokogiri

全部标签

Ruby Nokogiri SAX 解析器在 ">"(又名 ">")处截断字符串

背景:我正在使用Ruby的Nokogirigem来解析XML文件。我遇到的问题是,当字符串包含>时,SAX解析器返回不完整的结果。,这是>的HTML编码.例如:PART1PART2#=>returns"PART1PART2"PART3>PART4#=>returns"PART3"我的解析器看起来像这样:require'nokogiri'classMySample研究:如果一个字符串包含>,然后Nokogiri认为这是字符串的结尾。有一个>字符串中的XML将被视为格式不正确的XML。然而,我的XML格式正确,但Nokogiri认为>标记字符串的结尾。这意味着Nokogi

xml - 如何处理 Nokogiri 的 XPath 表达式中的转义字符

我正在使用nokogiri和一个看起来像这样的xml文档:JuanaMolinaUnDia8Dar(QuéDifícil)5\JuanaMolina\UnDia\08-JuanaMolina-Dar(QuéDifícil).mp3当我尝试查找包含转义字符的歌曲时,使用以下xpath查询我没有得到任何结果(无论我是否对查询中使用的文件名字符串进行转义)file=File.new("songs.xml")parser=Nokogiri::XML(file)filename="\JuanaMolina\UnDia\08-JuanaMolina-Dar(

xml - 使用 XPath 查找连续的 sibling

对于XPath专家来说,这是一个简单的要点!:)文档结构:NewtPROPER_NOUNGingrichPROPER_NOUNadmiresVERBGarryPROPER_NOUNTrudeauPROPER_NOUN忽略文档的语义不可能性,我想拉出[["Newt","Gingrich"],["Garry","Trudeau"]],即:当有两个标记连续entityTypes是PROPER_NOUN,我想从这两个标记中提取单词。我已经做到了:"//token[entityType='PROPER_NOUN']/following-sibling::token[1][entityType='

ruby - 使用 Nokogiri 创建非自闭空标签

当我尝试使用Nokogiri::XML::Builder创建XML文档时:builder=Nokogiri::XML::Builder.newdo|xml|xml.my_tag({key::value})end我得到以下XML标记:它是自闭的,但我需要完整的表格:当我在节点内传递一个值(甚至是一个空格)时:xml.my_tag("content",key::value)xml.my_tag("",key::value)它生成完整的标签:content但是如果我传递一个空字符串或nil,甚至是一个空block:xml.my_tag("",key::value)它生成一个自闭标签:我相信应

ruby - Nokogiri 可以搜索 "?xml-stylesheet"标签吗?

我需要解析XML样式表:我尝试过使用Nokogiri:doc.search("?xml-stylesheet").first['href']但是我得到了错误:`on_error':unexpected'?'after''(Nokogiri::CSS::SyntaxError) 最佳答案 Nokogiri无法搜索作为XML处理指令的标签。您可以像这样访问它们:doc.children[0] 关于ruby-Nokogiri可以搜索"?xml-stylesheet"标签吗?,我们在StackO

ruby - 判断两个 Nokogiri 节点是否等价

假设您有代表的Nokogiri节点以下两个文件中的元素:HelloHello从DOM的角度来看,这两者是等价的。我想有效地检测到这一点,但是Nokogiri::XML::Node#==只检查对象是否相等。由于Nokogiri1.5.0尚不支持规范化,我不能只序列化节点并比较字符串。比较两个节点以确保它们的名称、属性和内容在规范上等效的最快方法是什么?如果需要,答案可能依赖于仅在Ruby1.9.2+中可用的功能。测试用例ORIG1="foo"ORIG2="foo"NOTEXT=""EXTRATEXT1="foobar"EXTRATEXT2="hifoo"MISSINGNODE=""EXT

ruby-on-rails - 逐行搜索 XML

我有一个具有以下格式的XML文档:我想在XML中搜索字符串,但可能在多行标记、多个block文档和/或多个页面标记中:HelloWorldWhat'sUp?我需要搜索“HelloWorldWhat'sUp?”并且知道它位于第1列的第1行、第2列的第1行和第3block的第1-2行(第3页第1block)。我在行上有元数据来告诉我它是什么行号,以及它属于什么列号,例如:World跨不同列搜索该术语并能够了解它们属于哪些行和列的详细信息的最佳方式是什么?我可以获得第一个单词的所有实例,对每个实例进行迭代,然后查看以下单词是否与搜索单词相对应(逐字逐句),如果该行中没有更多单词,则转到下一个

ruby - Nokogiri - 使用 XML,而不是 HTML

我在让Nokogiri正常工作时遇到问题。我将1.4.4版与Ruby1.9.2一起使用。我安装了libxml2libxslt并且是最新的。当我运行带有XML的Ruby脚本时,效果很好。require'nokogiri'doc=Nokogiri::XML(File.open("test.xml"))doc=doc.css("name").eachdo|node|putsnode.textend进入CL,运行rubytest.rb,返回Name1Name2Name3人群变得疯狂。我调整了一些东西,对代码做了一些调整...require'nokogiri'require'open-uri'd

html - 如何使用 Nokogiri 用 <p> 标签包装 HTML 无标签文本?

我必须将HTML文档解析为不同的新文件。问题是有些文本节点没有用""包裹标签,而不是他们有""每个段落末尾的标签。我想用包装这段文字使用Nokogiri的标签:Footnote15:Catullusiii,12.EndoftheProjectabc***ENDOFTHISPROJECTXYZ********Thisfileshouldbenamednewfile.html...***** 最佳答案 在搜索一些论坛并在本地进行一些调试后,我找到了以下解决问题的方法。html_doc=Nokogiri::HTML.parse('path

ruby - 如何将 XML 内容包装在新节点(Nokogiri、Ruby)中?

使用Nokogiri我想插入一个节点进入以下XML片段sometext那样sometext.Nokogiri如何实现这一目标? 最佳答案 Nokogiri有一个名为wrap的方法。doc.search("bar").wrap("")doc.to_html=>sometext回答后续问题:str=""doc=Nokogiri::XML(str)doc.search("bar1,bar2").map(&:parent).uniq.eachdo|node|#Createanewelementtoattachthechildrentoins