0

我有以下 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 工具,第一个选择器结果为 7,第二个选择器结果为 4。

4

1 回答 1

1

使用 normalize-space 函数去除开头和结尾的空格: http ://www.w3.org/TR/xpath/#function-normalize-space

像这样

string-length(normalize-space(/articles/article[2]/url))
于 2013-10-03T15:46:23.857 回答