小编sea*_*ane的帖子

Drupal 7中的条件字段组/字段集

背景:在Drupal 7中,我用CCK(又名Field UI)创建了一个表单.我使用Field组模块来创建一个fieldgroup,但我需要它是有条件的,这意味着它只会根据之前的答案显示.

以前的研究:要创建条件字段,可以使用hook_form_alter()来编辑#states属性,如下所示:

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'person_info_node_form') {
    // Display 'field_maiden_name' only if married
    $form['field_maiden_name']['#states'] = array(
      'visible' => array(
        ':input[name="field_married[und]"]' => array('value' => 'Yes'),
      ),
    );
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎没有办法将States API用于fieldgroups.有一点要注意的是,虽然字段存储在$form,FIELDGROUPS存储在$form['#groups']和中$form['#fieldgroups'].我不知道如何区分这些,并且考虑到这一点,我试图以与上面相同的方式将#states属性应用于字段组.但是,它只会产生服务器错误.

问题:有没有办法使用States API或某种替代方法有条件地显示字段组?

php drupal drupal-7

10
推荐指数
2
解决办法
6908
查看次数

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

背景:我正在使用 Ruby 的Nokogiri gem 来解析 XML 文件。我遇到的问题是,当字符串包含 时,SAX 解析器返回不完整的结果>,这是 的 HTML 编码>。例如:

<element>PART1PART2</element> #=> returns "PART1PART2"
<element>PART3&gt;PART4</element> #=> returns "PART3"
Run Code Online (Sandbox Code Playgroud)

我的解析器看起来像这样:

require 'nokogiri'
class MySample < Nokogiri::XML::SAX::Document
  def characters(string)
    puts string
  end
end
# Create a new parser
parser = Nokogiri::XML::SAX::Parser.new(MySample.new)
# Feed the parser some XML
parser.parse_file(ARGV[0])
Run Code Online (Sandbox Code Playgroud)

研究:如果字符串包含>,则 Nokogiri 认为那是字符串的结尾。字符串中包含>会被视为 XML 格式不良。然而,我的 XML 格式正确,但 Nokogiri 认为这&gt;标志着字符串的结尾。这意味着 Nokogiri在解析字符串之前会解释 HTML(转换&gt;为)。>

问题:为什么 Nokogiri 解释 的 …

ruby xml sax nokogiri xml-parsing

5
推荐指数
1
解决办法
530
查看次数

给定单词列表,对文本正文进行全词匹配

笔记:

在我开始做正事之前,我想指出一些其他的 SO 帖子,它们并没有完全回答我的问题,也不是这个帖子的重复:

背景:

我在一个名为words.txt(每行一个单词)的文件中有一个单词列表。我想从一个不同的、更大的文件中找到所有行,该文件file.txt包含来自words.txt. 但是,我只想要全字匹配。这意味着当一行 fromfile.txt至少包含一个单词 fromwords.txt被“完全独立”找到时,应该进行匹配(我知道这很模糊,所以请允许我解释一下)。

换句话说,在以下情况下应该进行匹配:

  1. 这个词本身就在一条线上
  2. 该词被非字母数字/非连字符包围
  3. 单词位于行首,后跟非字母数字/非连字符
  4. 该单词位于行尾并以非字母数字/非连字符开头

例如,如果其中一个词words.txtcat,我希望它的行为如下:

cat              #=> match
cat cat cat      #=> match
the cat is gray  #=> match
mouse,cat,dog    #=> match
caterpillar cat  #=> match
caterpillar      #=> no match
concatenate      #=> no match
bobcat           #=> no match
catcat           #=> no match
cat100           #=> no match
cat-in-law       #=> …
Run Code Online (Sandbox Code Playgroud)

regex string bash shell grep

5
推荐指数
1
解决办法
1387
查看次数

标签 统计

bash ×1

drupal ×1

drupal-7 ×1

grep ×1

nokogiri ×1

php ×1

regex ×1

ruby ×1

sax ×1

shell ×1

string ×1

xml ×1

xml-parsing ×1