我有以下XML代码:
<?xml version="1.0" encoding="ISO-8859-1"?>
<articles>
<article>
<title>
<![CDATA[The title of the test]]>
</title>
<date>
<![CDATA[27/07/2013]]>
</date>
<url>
<![CDATA[http://www.google.com]]>
</url>
</article>
<article>
<title>
<![CDATA[The title of the SECOND test]]>
</title>
<date>
<![CDATA[27/12/2013]]>
</date>
<url>
<![CDATA[]]>
</url>
</article>
</articles>
我想测试URL的CDATA中的字符串是否为空。在我的XML示例中,我认为第一个URL节点不为空,但第二个是空字符串。
是否可以在XSL 1.0样式表中使用XPath进行测试(我需要使用XSL解析此XML)?
我尝试使用以下XPath选择器:
string-length(/articles/article[2]/url)
string-length(/articles/article[2]/url/text())
根据Notepad ++中的XML Tools,第一个选择器结果为7,第二个选择器结果为4。
答案 0 :(得分:1)
使用normalize-space函数去除开始和尾随空格: http://www.w3.org/TR/xpath/#function-normalize-space
像这样string-length(normalize-space(/articles/article[2]/url))