标签: xquery

是否有JSON等效的XQuery/XPath?

在复杂的JSON数组和哈希中搜索项目时,例如:

[
    { "id": 1, "name": "One", "objects": [
        { "id": 1, "name": "Response 1", "objects": [
            // etc.
        }]
    }
]
Run Code Online (Sandbox Code Playgroud)

我可以用某种查询语言来查找项目in [0].objects where id = 3吗?

javascript xpath json xquery

213
推荐指数
14
解决办法
10万
查看次数

如何查询SQL Server XML列中的值

我跟踪存储在RolesSQL Server数据库中的XML列(称为)中的XML .

<root>
   <role>Alpha</role>
   <role>Beta</role>
   <role>Gamma</role>
</root>
Run Code Online (Sandbox Code Playgroud)

我想列出在其中具有特定角色的所有行.此角色由参数传递.

xml sql sql-server xquery

122
推荐指数
5
解决办法
40万
查看次数

使用XPath,如何根据文本内容和属性值选择节点?

鉴于此XML:

<DocText>
<WithQuads>
    <Page pageNumber="3">
        <Word>
            July
            <Quad>
                <P1 X="84" Y="711.25" />
                <P2 X="102.062" Y="711.25" />
                <P3 X="102.062" Y="723.658" />
                <P4 X="84.0" Y="723.658" />
            </Quad>
        </Word>
        <Word>
        </Word>
        <Word>
            30,
            <Quad>
                <P1 X="104.812" Y="711.25" />
                <P2 X="118.562" Y="711.25" />
                <P3 X="118.562" Y="723.658" />
                <P4 X="104.812" Y="723.658" />
            </Quad>
        </Word>
    </Page>
</WithQuads>
Run Code Online (Sandbox Code Playgroud)

我想找到具有'July'文本和Quad/P1/X属性大于90的节点.因此,在这种情况下,它不应该返回任何匹配.但是,如果我使用GT(>)或LT(<),我会在第一个Word元素上得到匹配.如果我使用eq(=),我得不到匹配.

所以:

//Word[text()='July' and //P1[@X < 90]]
Run Code Online (Sandbox Code Playgroud)

将会返回true

//Word[text()='July' and //P1[@X > 90]]
Run Code Online (Sandbox Code Playgroud)

如何在P1 @ X属性上正确约束?

另外,想象一下,我有多个Page元素,用于不同的页码.我如何另外约束上面的搜索以找到节点text()='July', P1@X < 90和Page @pageNumber=3

xml xpath xquery

66
推荐指数
2
解决办法
9万
查看次数

XPath,XQuery和XPointer之间的区别

有什么区别XPath,XQueryXPointer?据我所知,XQuery是一个扩展版本XPath.我有一些基本的知识XPath.是否有任何功能提供XPath这不XQuery?昨天,我听到一个新词,XPointer.我很迷惑.哪种语言用于哪种目的?

xml xpath xquery

63
推荐指数
4
解决办法
4万
查看次数

直接在节点中选择文本,而不是在子节点中

如何在不选择子节点中的文本的情况下检索节点中的文本?

<div id="comment">
     <div class="title">Editor's Description</div>
     <div class="changed">Last updated: </div>
     <br class="clear">
     Lorem ipsum dolor sit amet.
</div>
Run Code Online (Sandbox Code Playgroud)

换句话说,我想要Lorem ipsum dolor sit amet.而不是Editor's DescriptionLast updated: Lorem ipsum dolor sit amet.

xpath xquery

41
推荐指数
2
解决办法
2万
查看次数

在xpath中连接多个节点值

我有一个看起来像这样的XML

<element1>
    <element2>
        <element3>    
            <element4>Hello</element4>
            <element5>World</element5>
        </element3>
        <element3>    
            <element4>Hello2</element4>
            <element5>World2</element5>
        </element3>
        <element3>    
            <element4>Hello3</element4>
            <element5>World3</element5>
        </element3>
    </element2>
</element1>
Run Code Online (Sandbox Code Playgroud)

我试图使用Xpath得到这样的结果:

Hello.World
Hello2.World2
Hello3.World3
Run Code Online (Sandbox Code Playgroud)

我在下面使用了concat函数但是没有得到正确的结果.

Concat功能:

concat(/element1/element2/element3/element4/text(),".", /element1/element2/element3/element5/text())
Run Code Online (Sandbox Code Playgroud)

结果我得到了:

Hello.World
Run Code Online (Sandbox Code Playgroud)

我怎样才能得到正确的结果?我正在使用XPath与Camel Spring DSL.

编辑:

XQuery,XSLT和SPel中的解决方案也很受欢迎.

编辑

我尝试了字符串连接,但它不起作用:

字符串连接函数:

string-join((/element1/element2/element3/element4/text(), /element1/element2/element3/element5/text()),".")
Run Code Online (Sandbox Code Playgroud)

结果我得到了:

Hello.Hello2.Hello3.World.World2.World3
Run Code Online (Sandbox Code Playgroud)

xml xslt xpath xquery spring-el

36
推荐指数
3
解决办法
10万
查看次数

如何从SQL Server中的XML元素获取特定属性

我在表的列中有类似下面的XML:

<?xml version="1.0" encoding="utf-8"?>
<container>
  <param name="paramA" value="valueA" />
  <param name="paramB" value="valueB" />
  ...
</container>
Run Code Online (Sandbox Code Playgroud)

我试图通过TSQL从XML中获取valueB部分

到目前为止,我正在获得正确的节点,但现在我无法弄清楚如何获取属性.

select xmlCol.query('/container/param[@name="paramB"]') from LogTable
Run Code Online (Sandbox Code Playgroud)

我想我可以添加/ @值到最后,但是SQL告诉我属性必须是节点的一部分.我可以找到许多用于选择子节点属性的示例,但兄弟属性中没有任何属性(如果这是正确的术语).

任何帮助,将不胜感激.

xml sql-server xpath xquery

35
推荐指数
2
解决办法
8万
查看次数

SQL Server SELECT到JSON函数

我想将SELECT语句的结果输出为JSON对象.

我希望这是一个函数而不是存储过程!

例如,下表用户

id    name        active
1     Bob Jones   1
2     John Smith  0
Run Code Online (Sandbox Code Playgroud)

会像这样返回:

[{"id":1,"name":"Bob Jones","active":1},{"id":2,"name":"John Smith","active":0}]
Run Code Online (Sandbox Code Playgroud)

提前致谢.

xml sql t-sql json xquery

35
推荐指数
3
解决办法
5万
查看次数

XML query()有效,value()需要找到单独的xdt:untypedAtomic

我有一个存储为文本的类型化的xml文档.因此,我使用公用表表达式将数据类型CONVERT转换为xml,以便能够使用XML方法:

WITH xoutput AS (
  SELECT CONVERT(xml, t.requestpayload) 'requestpayload'
    FROM TABLE t
   WHERE t.methodid = 1)
SELECT x.requestpayload.query('declare namespace s="http://blah.ca/api";/s:validate-student-request/s:student-id') as studentid
  FROM xoutput x
Run Code Online (Sandbox Code Playgroud)

查询工作,返回给我元素.但我只对价值感兴趣:

WITH xoutput AS (
  SELECT CONVERT(xml, t.requestpayload) 'requestpayload'
    FROM TABLE t
   WHERE t.methodid = 1)
SELECT x.requestpayload.value('declare namespace s="http://blah.ca/api";/s:validate-student-request/s:student-id', 'int') as studentid
  FROM xoutput x
Run Code Online (Sandbox Code Playgroud)

这给了我以下错误:

'value()'需要一个单例(或空序列),找到'xdt:untypedAtomic*'类型的操作数

我用google搜索说XPATH/XQUERY需要在括号内和/或需要"[1]" - 两者都没有用.xml中只有一个student-id元素,但我想模式允许更多?

另外,我想要检索的元素值很多 - 有没有办法声明命名空间一次而不是每个方法调用?

sql t-sql sql-server xquery sql-server-2005

32
推荐指数
2
解决办法
4万
查看次数

如何在tsql中查询xml列

我有一个表,T1,在SQL Server 2008上有一个XML列,EventXML.我想查询某些节点包含特定值的所有行.更好,我想在不同的节点中检索值.表T1:

T1:
   EventID, int
   EventTime, datetime
   EventXML, XML
Run Code Online (Sandbox Code Playgroud)

这是一个示例XML层次结构:

<Event>
   <Indicator>
      <Name>GDP</Name>
   </Indicator>
   <Announcement>
      <Value>2.0</Value>
      <Date>2012-01-01</Date>
   </Announcement>
</Event>
Run Code Online (Sandbox Code Playgroud)
  1. 如何查找与"GDP"指标相关的所有行;
  2. 如何获得"GDP"指标的所有值;

xml t-sql xquery sql-server-2008

32
推荐指数
2
解决办法
7万
查看次数