我有这个XML:
<test>
<a>
abc
<xyz />
def
<br />
ghi jkl
<br />
mno pqr
</a>
<a>
xxx
</a>
</test>
Run Code Online (Sandbox Code Playgroud)
在每个<a>
我需要选择所有子节点(甚至文本),直到第一个<br />
.如果没有<br />
,我需要选择给定的所有子节点<a>
.所以预期的结果是:
abc
<xyz />
def
Run Code Online (Sandbox Code Playgroud)
和
xxx
Run Code Online (Sandbox Code Playgroud)
我可以<br />
像这样选择"之前的一切":
//a/*[following::br]
Run Code Online (Sandbox Code Playgroud)
...但它会在最后一个 之前选择所有内容<br />
.我需要在第一个之前选择所有内容.我试过这样的:
//a/*[following::br[1]]
Run Code Online (Sandbox Code Playgroud)
......与以前的结果相同.这些也不选择"非<br />
"中<a>
的节点.
我怎样才能使用(可单一的)XPath表达式?谢谢你的任何建议.
我知道这可能看起来很愚蠢,但我无法相互检查2个值.以下代码我多次使用它们并且它们可以工作,但在一个实例中它只是做了奇怪的事情.在头版我得到:
<input type=\"text\" name=\"v571\" id=\"v571\" value=\"\" size=\"18\"/>
<input type=\"hidden\" name=\"v571a\" id=\"v571a\" value=\"140\"/>
Run Code Online (Sandbox Code Playgroud)
在js脚本中我有:
if( $('#v571').val() > $('#v571a').val()) {
$('#v571').addClass('error');
error++;
}
Run Code Online (Sandbox Code Playgroud)
这些是结果:
if v571 betweem 100 and 140 -> no error (should get no error)
if v571 less then 100 -> error (should get an error)
if v571 bigger then 140 -> error (should get an error)
if v571 bigger then 140 , but the number starts with 1 (eg: 1000, 1200, 12312, 1xxx...) -> no error (should get an …
Run Code Online (Sandbox Code Playgroud)