小编mon*_*nny的帖子

XSLT 1.0成语三元如果?

这个Java程序使用一个三元if来映射布尔值到输出字符串:("*"表示true,空字符串表示false).

public class ternary {
  public static void main(String[] args) {
    boolean flags[]={true,false,true};
    for (boolean f : flags) {
      System.out.println(f?"*":"");
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

所以输出是*,[empty],*.

我有一个输入XML文档,如:

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="change.xsl"?>
<root>
  <change flag="true"/>
  <change flag="false"/>
  <change flag="true"/>
</root>
Run Code Online (Sandbox Code Playgroud)

我有以下XSLT模板,它将true映射为'*',false映射为''(它可以工作):

<xsl:template match="change">
  <xsl:variable name="flag" select="translate(substring(@flag,1,1),'tf','*')"/>
  <xsl:value-of select="$flag"/>
</xsl:template>
Run Code Online (Sandbox Code Playgroud)

是否有更简洁的版本?

a)我可以直接从字符串'true | false'自动获取布尔值true | false的值吗?b)是否有(xpath?)构造将布尔值true | false映射到'*',''?

xslt xpath boolean ternary

8
推荐指数
1
解决办法
3002
查看次数

如果没有arg,则运行stdin的脚本; 否则输入文件= ARGV [0]

这很好用 - 只是想知道是否有任何改进来缩短它?

if (ARGV[0].nil?) then
    input=$<
else
    input=File.new(ARGV[0],"r");
end

...
# Do something with the input here, for example:
input.each_line do |line|
    puts line
end
Run Code Online (Sandbox Code Playgroud)

ruby stdin idioms file

7
推荐指数
1
解决办法
2688
查看次数

验证xml架构时出错

我想为一个空元素制作一个简单的模式

 <product orderid="4"/>
Run Code Online (Sandbox Code Playgroud)

我像这样创建了我的XSD:

<?xml version="1.0" encoding="UTF-8"?>


<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://xml.netbeans.org/schema/first"
xmlns:tns="http://xml.netbeans.org/schema/first"
elementFormDefault="qualified">

<xsd:element name="product" type="prodtype"/>
<xsd:complexType name="prodtype">
        <xsd:attribute name="prodid" type="xsd:integer"/>
</xsd:complexType>

</xsd:schema>
Run Code Online (Sandbox Code Playgroud)

在针对XSD验证XML时出现以下错误:

 Error resolving component 'prodtype'. It was detected that 'prodtype' has no namespace, but components with no target namespace are not referenceable from schema document 'file:/D:/Teacher%20assistant%202011/First%20term/web%20services/test%20programs/BpelModule1/src/product.xsd'. If 'prodtype' is intended to have a namespace, perhaps a prefix needs to be provided. If it is intended that 'prodtype' has no namespace, then an 'import' without a "namespace" attribute should …
Run Code Online (Sandbox Code Playgroud)

xml schema

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

Ruby单元测试:这是一个有效(格式良好)的XML Doc吗?

我正在创建一个XML文档:我想至少进行单元测试,以确保它的格式正确.到目前为止,我只能通过使用REXML库中的'hasElements'来估算它.

有没有更好的办法 ?最好使用内置库(我的意思是随标准Ruby 1.8.x发行版一起提供的库).

require "test/unit"
require 'rexml/document'
require 'test/unit/ui/console/testrunner'

include REXML

class TestBasic < Test::Unit::TestCase

    def test_createXML
     my_xml=...create doc here...
     doc = Document.new(my_xml);
     assert(doc.has_elements?);
    end

end

Test::Unit::UI::Console::TestRunner.run(TestBasic);
Run Code Online (Sandbox Code Playgroud)

ruby xml unit-testing rexml

6
推荐指数
1
解决办法
3941
查看次数

__cmp__方法在Python 2.x中没有按预期工作?

class x:
    def __init__(self,name):
        self.name=name

    def __str__(self):
        return self.name

    def __cmp__(self,other):
        print("cmp method called with self="+str(self)+",other="+str(other))
        return self.name==other.name
       # return False


instance1=x("hello")
instance2=x("there")

print(instance1==instance2)
print(instance1.name==instance2.name)
Run Code Online (Sandbox Code Playgroud)

这里的输出是:

cmp method called with self=hello,other=there
True
False
Run Code Online (Sandbox Code Playgroud)

这不是我的预期:我试图说'如果名称字段相等,则两个实例相等'.

如果我只是return False__cmp__功能,这也报告True!! 如果我回来-1,那么我得到False- 但是因为我想要比较字符串,这感觉不对.

我在这做错了什么?

python cmp python-2.x

6
推荐指数
2
解决办法
1799
查看次数

PowerShell相当于BASH(etc)'type'命令?

在*nix上,使用BASH(等)通过使用内置的'type'shell,询问系统命令所在的位置(等):

$ type cat
cat is /bin/cat
Run Code Online (Sandbox Code Playgroud)

Microsoft PowerShell 2.0中是否存在等效的"类型"命令?

windows shell powershell command-line-interface powershell-2.0

6
推荐指数
1
解决办法
2624
查看次数

如何让CSV阅读器读取内存文件?

我正在尝试将整个文件提取到内存中(完成 - 使用StringIO) - 但据我所知,这些对象的行为并不像'真实'文件那样 - 我得到了全部内容,或者我可以阅读一次一行,但我无法弄清楚如何应用这种模式:

import csv 
with open(#MYMEMORYFILE_HERE#, 'rb') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
        for row in spamreader:
Run Code Online (Sandbox Code Playgroud)

有没有办法像磁盘文件一样处理内存文件,所以我可以使用上面更好的习语?

Python 2.7.4 (default, Apr 19 2013, 18:28:01) 
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢你的答案 - 我想我已经缩小了令我困惑的事情...但我仍然有一个问题,以下没有输出任何东西?我怀疑潮红?

from csv import reader, writer
import StringIO

memfile=StringIO.StringIO()
spamwriter = writer(memfile)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
spamreader=reader(memfile)
for row in spamreader:
        print ', '.join(row)
memfile.close()
Run Code Online (Sandbox Code Playgroud)

编辑#2:但是我正在咆哮错误的树我想:我无法使磁盘上的版本也工作('IOError:文件没有打开阅读' - 当我打电话给已读的时候打开文件...)编辑#3:放弃了StringIO(没有真正的需要) - 根据答案使用了分割线.

我会在这里留下代码和评论 - 以防它有用.(即使它是一个死胡同).

python csv file-io

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

使用 MQTT 发送命令 - 有模式吗?

我是 MQTT 的新手:但是我有一些基本的 Python 程序可以在其中将传感器读数发布到特定主题:然后其他客户端可以订阅以在事件驱动的基础上获取温度。

但是当涉及到发送命令时;我有点坚持最好地做到这一点。

例如:将“倒数计时器”连接到 mqtt。

这个计时器有“停止”和“开始”两种状态。它将自身初始化为“停止”状态并等待“开始”命令;然后会倒计时;将当前倒计时发布到主题。当倒计时到零时;它将再次将其状态切换为“停止”,并等待另一个“启动”命令。

如果它收到“停止”命令(通过 mqtt);它也应该进入“停止”状态。

所以也许我可以创建类似的主题:

countdown_timer/command
countdown_timer/state
countdown_timer/value
Run Code Online (Sandbox Code Playgroud)

倒计时设备可以订阅“命令”并通过发布到“状态”来做出反应。(“停止”还是“开始”?)

但是,客户端是否应该在处理完“命令”主题值后以某种方式“使用”它?

或者最好有类似的东西:

countdown_timer/send_command
countdown_timer/command_result
Run Code Online (Sandbox Code Playgroud)

控制器将在何处发送命令,订阅设备将执行该命令并在“command_result”主题上放置“ok”或“error”?

mqtt

6
推荐指数
1
解决办法
3729
查看次数

Get-EventLog - 轻松过滤'今天'?

我想快速检查今天发生的事件(即:从午夜开始的任何事情); 在Powershell中有'今天'别名/内置来帮助解决这个问题吗?

我现在正在做这样的事情:

get-eventlog system  -source "disk" -after ([datetime] '01/01/2015')
Run Code Online (Sandbox Code Playgroud)

但当然我不得不改变日期字符串.

[另外:那个日期时间构造函数似乎只坚持使用美国日期格式(mm/dd/yyyy) - 尽管我的Windows Locale是英国的吗?]

powershell datetime date

6
推荐指数
1
解决办法
2050
查看次数

Python的列表推导(理想情况下)可以在SQL中执行相当于'count(*)... group by ...'的操作吗?

我认为列表推导可能会给我这个,但我不确定:Python(2.6)中的任何优雅解决方案通常用于选择列表中的唯一对象并提供计数?

(我已经定义了一个__eq__定义我的对象定义的唯一性).

所以在RDBMS-land中,这样的事情:

CREATE TABLE x(n NUMBER(1));
INSERT INTO x VALUES(1);
INSERT INTO x VALUES(1);
INSERT INTO x VALUES(1);
INSERT INTO x VALUES(2);

SELECT COUNT(*), n FROM x
GROUP BY n;
Run Code Online (Sandbox Code Playgroud)

这使:

COUNT(*) n
==========
3        1
1        2
Run Code Online (Sandbox Code Playgroud)

所以,这是我在Python中的等效列表:

[1,1,1,2]
Run Code Online (Sandbox Code Playgroud)

我想要与上面给出的SQL SELECT相同的输出.

编辑:我给这里的例子是简化的,我其实处理用户定义的对象实例的列表:只是为了完整性我有额外的代码,我需要得到整个事情的工作:

import hashlib

def __hash__(self):
    md5=hashlib.md5()
    [md5.update(i) for i in self.my_list_of_stuff]
    return int(md5.hexdigest(),16)
Run Code Online (Sandbox Code Playgroud)

__hash__需要使用该方法才能使set转换工作(我选择了在2.6中工作的列表理解思想[尽管事实上我知道这涉及效率低下(参见注释) - 我的数据集足够小,因为它不是问题]).my_list_of_stuff上面是我的对象定义中的(字符串)列表.

python list count python-2.6

5
推荐指数
4
解决办法
4607
查看次数