如何使用XSLT 2.0将XML字符串转换为节点集?

时间:2017-09-27 20:46:42

标签: xml xml-parsing xslt-2.0 saxon

我有以下XML文本节点,里面有一个格式良好的XML文本,我需要在XSLT 2.0中使用SAXON解析器解析节点内的文本。 你能不能建议我如何解析里面的XML文本?

<description>&lt;settings&gt;&lt;display lang='de'&gt;&lt;title&gt;index-DE&lt;/title&gt;&lt;titleurl&gt;index-DE&lt;/titleurl&gt;&lt;logo&gt;&lt;/logo&gt;&lt;seourl&gt;&lt;/seourl&gt;&lt;/display&gt;&lt;display lang='fr'&gt;&lt;title&gt;index-FR&lt;/title&gt;&lt;titleurl&gt;index-FR&lt;/titleurl&gt;&lt;logo&gt;&lt;/logo&gt;&lt;seourl&gt;&lt;/seourl&gt;&lt;/display&gt;&lt;display lang='en'&gt;&lt;title&gt;index-EN&lt;/title&gt;&lt;titleurl&gt;index-EN&lt;/titleurl&gt;&lt;logo&gt;&lt;/logo&gt;&lt;seourl&gt;&lt;/seourl&gt;&lt;/display&gt;&lt;display lang='nl'&gt;&lt;title&gt;index-NL&lt;/title&gt;&lt;titleurl&gt;index-NL&lt;/titleurl&gt;&lt;logo&gt;&lt;/logo&gt;&lt;seourl&gt;&lt;/seourl&gt;&lt;/display&gt;&lt;nodeId&gt;index4b2&lt;/nodeId&gt;&lt;userType&gt;0&lt;/userType&gt;&lt;themes&gt;&lt;/themes&gt;&lt;inheritTheme&gt;Y&lt;/inheritTheme&gt;&lt;services&gt;&lt;pdf&gt;I&lt;/pdf&gt;&lt;print&gt;I&lt;/print&gt;&lt;shareOn&gt;I&lt;/shareOn&gt;&lt;/services&gt;&lt;networks&gt;&lt;/networks&gt;&lt;xmlSiteMap&gt;&lt;axes1&gt;&lt;axis&gt;fr&lt;/axis&gt;&lt;axis&gt;nl&lt;/axis&gt;&lt;/axes1&gt;&lt;axes2&gt;&lt;axis&gt;PC&lt;/axis&gt;&lt;/axes2&gt;&lt;axes3&gt;&lt;axis&gt;fb&lt;/axis&gt;&lt;/axes3&gt;&lt;axes4&gt;&lt;axis&gt;prof&lt;/axis&gt;&lt;axis&gt;expa&lt;/axis&gt;&lt;axis&gt;priv&lt;/axis&gt;&lt;/axes4&gt;&lt;inherit&gt;false&lt;/inherit&gt;&lt;weight&gt;0.5&lt;/weight&gt;&lt;/xmlSiteMap&gt;&lt;custom&gt;&lt;name&gt;type&lt;/name&gt;&lt;value&gt;&lt;/value&gt;&lt;/custom&gt;&lt;custom&gt;&lt;name&gt;languages&lt;/name&gt;&lt;value&gt;nl;fr&lt;/value&gt;&lt;/custom&gt;&lt;custom&gt;&lt;name&gt;hideOnSmallResolution&lt;/name&gt;&lt;value&gt;&lt;/value&gt;&lt;/custom&gt;&lt;custom&gt;&lt;name&gt;authenticated&lt;/name&gt;&lt;value&gt;&lt;/value&gt;&lt;/custom&gt;&lt;custom&gt;&lt;name&gt;segments&lt;/name&gt;&lt;value&gt;&lt;/value&gt;&lt;/custom&gt;&lt;custom&gt;&lt;name&gt;navigationElement&lt;/name&gt;&lt;value&gt;&lt;/value&gt;&lt;/custom&gt;&lt;custom&gt;&lt;name&gt;user&lt;/name&gt;&lt;value&gt;&lt;/value&gt;&lt;/custom&gt;&lt;/settings&gt;</description>

1 个答案:

答案 0 :(得分:1)

当前版本的Saxon(9.8)支持XSLT 3.0和XPath 3.1,因此您可以使用XPath 3.1函数parse-xml()。

较早版本的Saxon在Saxon名称空间中具有类似的功能:saxon:parse()。