搜索未包含在元素中的特定文本
search for specific text not wrapped within an element
希望有人能提供帮助...一直在尝试找出如何搜索未包含在特定元素中的特定文本。
文本 "FIGURE" 可以出现在 XML 文档中的任何位置。 FIGURE 这个词也可以拼写为 "Figure"...
这就是我目前所拥有的...但是它没有接受文字 "FIGURE"...
<rule context="text()">
<assert test= "(.,'FIGURE')[not(/GRPHCREF)]" role="error" id="error_grphcref_figure"
>Figure reference not wrapped in GRPHCREF.</assert>
</rule>
非常感谢您的任何建议...
如果您尝试测试 text()
节点是否包含单词 "FIGURE",请使用 contains()
function. To compare case-insensitive, use the upper-case()
函数,或者您可以使用两个函数测试 contains()
文字字符串 "FIGURE" 和 "Figure".
以下规则断言,如果 text()
节点包含单词 "FIGURE"(不区分大小写),则它必须有一个 GRPHREC
元素祖先。
<rule context="text()[contains(upper-case(.), 'FIGURE')]">
<assert test= "ancestor::GRPHCREF" role="error" id="error_grphcref_figure"
>Figure reference not wrapped in GRPHCREF.</sch:assert>
</rule>
虽然我认为将上下文评估和断言测试的值测试分开会更清晰,就像我上面所做的那样。但是,下面演示了如何在所有 text()
节点上保持更一般的匹配并在断言测试中应用所有条件:
<rule context="text()">
<assert test= "contains(upper-case(.), 'FIGURE') and ancestor::GRPHCREF" role="error" id="error_grphcref_figure"
>Figure reference not wrapped in GRPHCREF.</sch:assert>
</rule>
希望有人能提供帮助...一直在尝试找出如何搜索未包含在特定元素中的特定文本。
文本 "FIGURE" 可以出现在 XML 文档中的任何位置。 FIGURE 这个词也可以拼写为 "Figure"...
这就是我目前所拥有的...但是它没有接受文字 "FIGURE"...
<rule context="text()">
<assert test= "(.,'FIGURE')[not(/GRPHCREF)]" role="error" id="error_grphcref_figure"
>Figure reference not wrapped in GRPHCREF.</assert>
</rule>
非常感谢您的任何建议...
如果您尝试测试 text()
节点是否包含单词 "FIGURE",请使用 contains()
function. To compare case-insensitive, use the upper-case()
函数,或者您可以使用两个函数测试 contains()
文字字符串 "FIGURE" 和 "Figure".
以下规则断言,如果 text()
节点包含单词 "FIGURE"(不区分大小写),则它必须有一个 GRPHREC
元素祖先。
<rule context="text()[contains(upper-case(.), 'FIGURE')]">
<assert test= "ancestor::GRPHCREF" role="error" id="error_grphcref_figure"
>Figure reference not wrapped in GRPHCREF.</sch:assert>
</rule>
虽然我认为将上下文评估和断言测试的值测试分开会更清晰,就像我上面所做的那样。但是,下面演示了如何在所有 text()
节点上保持更一般的匹配并在断言测试中应用所有条件:
<rule context="text()">
<assert test= "contains(upper-case(.), 'FIGURE') and ancestor::GRPHCREF" role="error" id="error_grphcref_figure"
>Figure reference not wrapped in GRPHCREF.</sch:assert>
</rule>