背景:在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或某种替代方法有条件地显示字段组?
背景:我正在使用 Ruby 的Nokogiri gem 来解析 XML 文件。我遇到的问题是,当字符串包含 时,SAX 解析器返回不完整的结果>,这是 的 HTML 编码>。例如:
<element>PART1PART2</element> #=> returns "PART1PART2"
<element>PART3>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 认为这>标志着字符串的结尾。这意味着 Nokogiri在解析字符串之前会解释 HTML(转换>为)。>
问题:为什么 Nokogiri 解释 的 …
笔记:
在我开始做正事之前,我想指出一些其他的 SO 帖子,它们并没有完全回答我的问题,也不是这个帖子的重复:
背景:
我在一个名为words.txt(每行一个单词)的文件中有一个单词列表。我想从一个不同的、更大的文件中找到所有行,该文件file.txt包含来自words.txt. 但是,我只想要全字匹配。这意味着当一行 fromfile.txt至少包含一个单词 fromwords.txt被“完全独立”找到时,应该进行匹配(我知道这很模糊,所以请允许我解释一下)。
换句话说,在以下情况下应该进行匹配:
例如,如果其中一个词words.txt是cat,我希望它的行为如下:
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)