我正在尝试这个并且不能让它工作?获取datareal\copiesdonotdelete.txt此时出乎意料.
rem @echo off
if exists datareal\copiesdonotdelete.txt goto DoFunction1
Goto DoFunction2
Exit
:DOFunction1
rename data datatemp
rename datareal data
rename datatemp datacopyfiles
Echo Done
Exit
:DOFunction2
rename data datatemp
rename datacopyfiles data
rename datatemp datareal
Echo Done
Exit
Run Code Online (Sandbox Code Playgroud) 我看过一个index函数,但是如果它找不到它就会出错.有没有一种简单的方法来检查项目是否存在?我只想获得结果的布尔值,如下所示:
if tuple.exists("item"):
print "it exists"
Run Code Online (Sandbox Code Playgroud) 我正在使用XSLT来创建HTML输出页面.我需要在输出页面添加一个doctype.我用谷歌搜索,这似乎能够让它工作:
<xsl:output
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>
Run Code Online (Sandbox Code Playgroud)
所以我将它添加到测试转换文件transform.xsl中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
/>
<xsl:template match="/">
<html>
<head>
<title>test</title>
</head>
<body>
content!
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
但输出HTML不包含doctype .... 其余的例子......很好.
我做错了什么,为什么不添加doctype?
谢谢!
编辑:问题解决了,我正在使用eXist,似乎xsl:output指令不起作用,解决方案:邮件列表
有人能告诉我XQuery node()和element()类型之间的确切区别吗?文档说明这element()是一个元素节点,node()而是任何节点,所以如果我理解它element()是一个子集node().
问题是我有一个像这样的XQuery函数:
declare function local:myFunction($arg1 as element()) as element() {
let $value := data($arg1/subelement)
etc...
};
Run Code Online (Sandbox Code Playgroud)
现在我想用一个参数调用该函数,该参数由另一个函数获得,比如说functionX(我无法控制):
let $parameter := someNamespace:functionX()
return local:myFunction($parameter)
Run Code Online (Sandbox Code Playgroud)
问题是,functionX返回一个node()所以它不会让我$parameter直接通过.我尝试改变我的函数类型node()而不是一个element(),但后来我似乎无法读取它的任何数据.$value只是空的.
有没有办法将节点转换为元素,或者我应该错过什么?
编辑:据我所知,问题出在我尝试使用子元素的部分$arg1/subelement.显然你可以这样做,如果$arg1是,element()但不是如果它是node().
更新:我已经测试了下面Dimitre提供的示例,它确实工作正常,包括Saxon和eXist DB(我使用的是XQuery引擎).问题实际上发生在request:get-data()eXist DB 的功能上.当通过REST使用eXist时,此函数获取POST请求提供的数据,将其解析为XML并将其作为a返回node().但由于某种原因,当我将数据传递给另一个函数时,XQuery并不承认它是有效的element(),即使它是.如果我手动提取它(即复制输出并将其粘贴到我的源代码),将其分配给变量并将其传递给我的函数一切顺利.但是,如果我直接传递它,它会给我一个运行时错误(实际上instance of测试失败).
我需要能够让它忽略这种类型检查或"数据转换"数据到element().
我正在尝试开发基于内容的路由骆驼应用程序.此应用程序将查看文件夹src/data以查看是否存在具有节点的SOAP请求文件<e2d:getOrderDetaiRequest>,然后该文件将被复制到目标/消息中,否则该文件将被复制到目标/其他.
你知道如何使用xpath(或任何其他工具)来检查这个条件(我更喜欢使用camel-context.xml文件)?
这是我的骆驼语境
<route>
<from uri="file://c:/src/data?noop=true"/>
<choice>
<when>
<xpath>**???????????????????????????**</xpath>
<to uri="file://c:/target/message"/>
</when>
<otherwise>
<to uri="file://c:/target/other"/>
</otherwise>
</choice>
</route>
Run Code Online (Sandbox Code Playgroud)
这是2个不同SOAP请求的示例
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:e2d="http://www.abc.com/Abc11WS">
<soapenv:Header/>
<soapenv:Body>
<e2d:getOrderDetailRequest>
<actionCode>1234</actionCode>
</..>
</...></...>
Run Code Online (Sandbox Code Playgroud)
和
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:lsr="http://www.abc.com/Abc22WS">
<soapenv:Header/>
<soapenv:Body>
<lsr:getProductDetailsRequest>
<productId>12345</...>
</...></...></...>
Run Code Online (Sandbox Code Playgroud) 让我们采用我能想到的最简单的xquery函数:
declare function local:identityFunction($v as xs:integer)
{
return ($v)
};
Run Code Online (Sandbox Code Playgroud)
我在哪里申报?
我正在尝试使用exists-db和basex,但是如果我在查询处理器窗口中编写它,它们会给我一些错误(尽管正常的xqueries工作).
例如,basex抱怨以下消息:"Expecting expression".
我想知道,当我在页面中添加jquery时,我想在添加之前检查是否已经添加了jquery,如果没有添加,则只添加其他不.
例如,我添加了jquery jquery-1.4.1.min
<script type="text/javascript" src="<?php echo SITE_JS;?>jquery-1.4.1.min"></script>
Run Code Online (Sandbox Code Playgroud)
之后当我想添加jquery时 jquery-1.7.1.min
in case i didnt know that i have already added or not 所以我试图添加它,但在此之前,我想检查版本,如果旧版本或相同的jquery然后我不希望它添加其他添加新的jquery和禁用旧版本.
<script type="text/javascript" src="<?php echo SITE_JS;?>jquery-1.7.1.min"></script>
Run Code Online (Sandbox Code Playgroud)
在添加这个之前我想检查jquery是否已经存在更高版本或没有.这怎么可能?
我有一个index.html数据,我通过以下方式包含模板:
<div xmlns="http://www.w3.org/1999/xhtml" data-template="templates:surround" data-template-with="templates/page.html" data-template-at="content">
Run Code Online (Sandbox Code Playgroud)
在索引html网站上我添加了一个关键字搜索表单,我的想法是,当我点击搜索按钮时,它应该调用.xq文件来请求搜索结果:
<form method="GET" action="ksearch.xq">
Run Code Online (Sandbox Code Playgroud)
当我提交表单时,会打开ksearch.xq页面,但即使我包含与上面相同的模板div:
<div xmlns="http://www.w3.org/1999/xhtml" data-template="templates:surround" data-template-with="templates/page.html" data-template-at="content">
Run Code Online (Sandbox Code Playgroud)
ksearch.xq页面没有应用模板.
似乎当我调用.xq文件时,模板未应用,但是当我调用纯HTML文件时,模板将被应用.
所以问题是如何在.xq文件的输出中使用此模板?
提前致谢.
我想知道如何让 eXide 返回超过 10 个结果。无论我如何查询数据库,都不可能获得更多。$EXIST_HOME 左右有什么特殊规则吗?
我使用 eXist-db 3.0.RC1。
考虑以下XML:
<LIST>
<Name>Jon</Name>
<Name>Dan</Name>
<Name>Bill</Name>
<Name>Jack</Name>
</LIST>
Run Code Online (Sandbox Code Playgroud)
我需要像Jon,Dan,Bill,Jack使用XQuery 一样将输出作为字符串作为CSV .
我使用FLWOR表达式完成它normalize-space,然后用逗号替换空格.但是,我相信在XQuery中应该有更好的方法.
exist-db ×5
xquery ×4
exists ×2
html ×2
xml ×2
apache-camel ×1
basex ×1
batch-file ×1
collections ×1
doctype ×1
exide ×1
file ×1
if-statement ×1
jquery ×1
list ×1
osb ×1
python ×1
stylesheet ×1
templates ×1
tuples ×1
xmlnode ×1
xpath ×1
xslt ×1