【问题标题】:How to convert an XML string into nodeset using XSLT 2.0?如何使用 XSLT 2.0 将 XML 字符串转换为节点集?
【发布时间】:2018-03-09 11:28:14
【问题描述】:

我有以下 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>

【问题讨论】:

    标签: xml xml-parsing xslt-2.0 saxon


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2011-10-05
      • 1970-01-01
      • 2011-08-28
      • 1970-01-01
      • 2013-01-14
      • 2013-05-22
      • 2021-02-28
      • 2015-02-06
      • 2013-02-17
      相关资源
      最近更新 更多