我使用<是否正确?

时间:2015-03-15 11:39:52

标签: html xml xslt xpath

我是HTML和Xpath的新手,需要一些帮助。

我正在尝试在HTML中使用小于函数,但它不断出现错误。

value.singleNodeValue.setAttribute("select", "match[round &lT; '"+matchround+"']");

其中round是属性名称,matchround是我想要比较的用户输入。

有人可以突出显示我做错了什么,因为大于声明的效果非常好。

2 个答案:

答案 0 :(得分:1)

XML中的常规和参数实体区分大小写

&lT;(当前显示在您问题代码中的资本T)与<不同。

您的示例打算如何使用XPath也不是很清楚。您似乎只是尝试使用一个与XPath select函数几乎没有相似之处的字符串来设置名为match()的属性。另请注意,match()仅在XPath 2.0中可用。

您提出的问题的答案是,您必须在XML中使用&lt;(区分大小写)而不是文字<,以便解析器不会将<误认为是一个元素。

您真实问题的答案取决于您的clarification of what your true end goal is

答案 1 :(得分:0)

您想要进行什么样的比较,matchround具有什么样的价值?是字符串还是数字? XPath 1.0不支持小于或大于字符串值的比较,仅支持数字比较。你说round是属性名称,因为在XPath中你需要@round。因此,如果matchround是一个数字(例如50),那么执行setAttribute("select", "match[@round < " + matchround + "]")会创建一个以XPath表达式match[@round < 50]作为其值的属性。只有在DOM树被序列化时才会发生任何转义,DOM中的属性值将包含带有<字符的纯XPath表达式,而不包含实体引用。