首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用一个xpath表达式获取xml提要中多个标记的文本?

如何使用一个xpath表达式获取xml提要中多个标记的文本?
EN

Stack Overflow用户
提问于 2010-12-31 13:07:25
回答 4查看 130关注 0票数 0

我正在尝试解析如下所示的xml提要:

代码语言:javascript
运行
复制
<item>
<title>item title</title>
<link>item link</link>
<description>item description</description>
</item>

我正在尝试寻找一个xpath表达式,它将检索每个条目的所有详细信息,以便提要中的每个条目都包含在它自己的数组中,或者以某种方式分组。我尝试使用//item/*,但标签没有分组,尽管它们的顺序是正确的。

有没有这样做的方法呢?

编辑:

代码语言:javascript
运行
复制
[
[title1, link1, desc1],
[title2, link2, desc2],
[title3, link3, desc3]
]
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-31 20:51:24

来自http://www.w3.org/TR/xpath/#section-Introduction

计算表达式以生成对象,该对象具有以下四种基本类型之一:

  • 节点集(不带duplicates)
  • boolean (真或假)的节点的无序集合)
  • number(浮点型字符( UCS字符序列)

因此,没有像元组这样的“结构化”数据类型。对于您的任务,"standar“解决方案是选择父对象并遍历它们,使用任何DOM API方法获取子对象。

票数 0
EN

Stack Overflow用户

发布于 2010-12-31 17:22:58

使用下面的输入

代码语言:javascript
运行
复制
<root>
<item>
    <title>item title</title>
    <link>item link</link>
    <description>item description</description>
</item>
<item>
    <title>item2</title>
    <link>link2</link>
    <description>description2</description>
</item>
</root>

和这个xsl

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>

    <xsl:template match="//item">
        <xsl:value-of select="./title"/><xsl:text>
</xsl:text>
        <xsl:value-of select="./link"/><xsl:text>
</xsl:text>
        <xsl:value-of select="./description"/><xsl:text>
</xsl:text>
    </xsl:template>

</xsl:stylesheet>

您将获得以下输出

代码语言:javascript
运行
复制
item title
item link
item description

item2
link2
description2

我希望这能帮到你..

票数 0
EN

Stack Overflow用户

发布于 2010-12-31 21:00:35

下面是一个返回序列的XML2.0XML表达式(假设XPath的答案是输入文档):

代码语言:javascript
运行
复制
for $item in /root/item
  return ($item/title/text(), $item/link/text(), $item/description/text())

序列是有序的,但不允许嵌套,因此您无法获得纯XPath所要求的那种数据结构。使用XSLT (或另一种宿主语言),您可以创建提供所需结构的新对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4568198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档