小编Ste*_*ano的帖子

在python中解析.xsd

我需要在Python中解析文件.xsd,因为我将解析XML.
我使用的是libxml2.
我必须解析一个看起来如下的xsd:

<xs:complexType name="ClassType">
<xs:sequence>
    <xs:element name="IeplcHeader">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="device-number" type="xs:integer" fixed="1"/>
            </xs:sequence>
            <xs:attribute name="version" type="xs:integer" use="required" fixed="0"/>
        </xs:complexType>
    </xs:element>
Run Code Online (Sandbox Code Playgroud)

当我访问

doc.xpathEval('//xs:complexType/xs:sequence/xs:element[@name="IeplcHeader"]'):
Run Code Online (Sandbox Code Playgroud)

告诉我,找不到路径.

如果我删除所有的xs:如下

<complexType name="ClassType">
  <sequence>
    <element name="IeplcHeader">
        <complexType>
            <sequence>
                <element name="device-number" type="xs:integer" fixed="1"/>
            </sequence>
            <attribute name="version" type="xs:integer" use="required" fixed="0"/>
        </complexType>
    </element>
Run Code Online (Sandbox Code Playgroud)

以这种方式它的工作原理

doc.xpathEval('//complexType/sequence/element[@name="IeplcHeader"]'):
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能读到修复前缀这个问题?现在我正在准备删除xs的文件:但这是一个糟糕的解决方案,我真的希望能够找到更好的解决方案.

(我没有尝试使用py-dom-xpath,我不知道是否可以使用xs :)

谢谢,ste

python xml parsing xsd

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

通过modelsim进行vhdl仿真的VCD转储.如何?

这是我第一次尝试制作VCD而且我遇到了一些麻烦.

我有一个名为bench_minimips.vhdl的测试平台,其中包含实体sim_minimips.我想模拟它并从中获取VCD.

我在Modelsim shell中输入以下命令:

vsim work.sim_minimips
vcd file myvcd1.vcd
vcd add -file bench_minimips.vhd/*
run
Run Code Online (Sandbox Code Playgroud)

但如果我在一个空文件中打开myvcd1.vcd.我该怎么做才能创建转储?

我在另一个论坛上尝试了以下命令:

wlf2vcd -o myvcd2.vcd vsim.wlf
Run Code Online (Sandbox Code Playgroud)

但是会产生错误.

我真的迷失在理解中,因为我找到的所有网站都告诉你使用altera或其他公司生成的TCL,我没有他们的内容可供查看.

有人知道我该怎么办?

最好的,斯特凡诺

simulation dump vhdl modelsim

5
推荐指数
1
解决办法
8788
查看次数

在中间添加孩子

我想使用 python 中的 minidom 将元素添加到 XML 文件。假设我有以下 xml 文件

<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
<node-a/>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我可以轻松地附加一个元素“node-4”,如下所示

node4 = designDOM.createElement('node-4')
nodea.appendChild(node4)
Run Code Online (Sandbox Code Playgroud)

生成以下 xml:

<node-a>
    <node-1/>
    <node-2/>
    <node-3/>
    <node-4/>
<node-a/>
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果我想强制将元素插入到特定位置而不是最后......我应该做什么?例如,如果我想要一个元素“2-a”,如下面的 xml 所示,我应该做什么?

<node-a>
    <node-1/>
    <node-2/>
    <node-2a/>
    <node-3/>
    <node-4/>
<node-a/>
Run Code Online (Sandbox Code Playgroud)

python xml minidom

5
推荐指数
1
解决办法
2028
查看次数

Python XDR TCP流

我有一个接收XDR数据的C套接字服务器.我写了一个C和一个Java客户端.我正在尝试使用编写Python客户端xdrlib.

import xdrlib

p = xdrlib.Packer()
p.pack_int(5) 
p.pack_int(4)
p.pack_int(3)
data = p.get_buffer()
Run Code Online (Sandbox Code Playgroud)

当我通过服务器解码这个数据是不同的.这是因为数据被编码为通过xdrmem解码器读取.(他们没有记录的开始和结束).

有谁知道是否有支持创建xdr记录的python库?在c中,这是通过xdrrec_create和在Java中完成的XdrTcpEncodingStream.

python xdr

5
推荐指数
1
解决办法
246
查看次数

Qprocess混淆了我的linux命令(我认为).怎么修?

我需要强制我的c ++ QT4应用程序从linux命令读取结果.我正在尝试使用Qprocess但是一旦我的命令变得复杂,它就会以某种方式混乱(只是猜测)并且不起作用.

在这里,我尝试为yu做一个小例子:

QProcess process;
command = "ls -l | grep a | sort";
qDebug() << "Execute command -> "+command;
process.start( command );
process.waitForFinished(-1);
QString processStdout = process.readAllStandardOutput();
QString processStderr = process.readAllStandardError();
qDebug() << "Std out -> "+processStdout;
qDebug() << "Std err -> "+processStderr;
Run Code Online (Sandbox Code Playgroud)

这将打印:

Execute command -> ls -l | grep a | sort
"Std out -> " 
"Std err -> ls: |: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果从consol中删除,将正确打印文件名.

如果我用更简单的方式替换command = "ls -l";comman , 那么它可以顺利工作.操作系统在标准错误中返回错误.

因此,我猜测用于命令的Qstring会以某种方式被操纵.关于wht发生的任何想法?

c++ linux qt qprocess

3
推荐指数
1
解决办法
2625
查看次数

python libXML2删除项目

我在python下使用libxml2.不幸的是,这个库的python版本真的很难记录,我在网上创建了几个例子,我可以理解一些方法.

我管理了很快添加一个XML节点.由于这个元素应该替换现有的元素,我想删除之前的一个,但我找不到删除孩子的方法.

有谁知道方法名称是什么?有没有人有关于这个图书馆的体面文件?

干杯

python libxml2 removechild

3
推荐指数
1
解决办法
1692
查看次数

刷新jtable中的行的背景颜色

我正在尝试设置Swing Jtable的行颜色.我使用这个类来扩展Jtable作为网上的建议.

    public class ColorTable extends JTable {


    private static final long serialVersionUID = 1L;
    private Map rowColor = new HashMap();
    private Map columnColor = new HashMap();
    private Color cellColor;
    private Color defaultColor;

    public ColorTable( TableModel model ) {
        super( model );
    }

    public void setRowColor( int row, Color c) {
        rowColor.put( new Integer( row ), c );
    }

    public void setColumnColor( int column, Color c ) {
        columnColor.put( new Integer( column ), c );
    }

    public void setCellColor( Color …
Run Code Online (Sandbox Code Playgroud)

java swing refresh jtable colors

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

python minidom不关闭<xml tag>

我正在使用minidom遇到一种奇怪的行为.我运行以下代码:

import os
import sys
from xml.dom import minidom
def generateReleaseXMLFile():
    modelPath = "%./model/"
    # Create the parser
    xsydoc  = minidom.Document()
    # Create the element ScriptModelVersion
    scriptModelVersion  = xsydoc.createElement('ScriptModelVersion')
    # Assign all the attributes
    scriptModelVersion.setAttribute("Major", "1")
    scriptModelVersion.setAttribute("Minor", "2")
    scriptModelVersion.setAttribute("Patch", "3")
    scriptModelVersion.setAttribute("ReseaseDate", "2011-05-20")
    # Append the root to the document
    xsydoc.appendChild(scriptModelVersion)
    # Create the file descriptor
    fdesc = open(modelPath+"Release.xml", "w")
    # Write the file
    fdesc.write(xsydoc.toprettyxml())
    # Close the file
    fdesc.close()
    print xsydoc.toprettyxml()

generateReleaseXMLFile()
Run Code Online (Sandbox Code Playgroud)

它生成以下输出:

<?xml version="1.0" ?>
<ScriptModelVersion Major="9" Minor="0" Patch="1" …
Run Code Online (Sandbox Code Playgroud)

python xml minidom

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

linux搜索文件中的多个单词

我有一个包含一组文本文件的文件夹.

-Folder
--- file 1
--- file 2
--- file 3
--- file 4
Run Code Online (Sandbox Code Playgroud)

我有一套单词,我想检查是否在里面. {word1, username, blah blahblah}

在单个命令上是否有办法发现这些文件中的哪一个包含列表中的所有单词?

我看到它可以使用一些和grep,但我认为它们在单行上工作,而在我的情况下,恶化总是在不同的线上.

单词的数量是静态的.总是3或4所以如果需要我可以在命令中硬编码.

编辑: 他们在和.如果文件中没有全部内容,则不接受该文件!我想避免做egrep -l'word1' xargs egrep -l'word2'

有没有更好的解决方案只调用一次grep?

干杯,Ste

linux bash command

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

Xpath或运算符.如何使用

我没有得到如何在Xpath中使用或运算符.

让我们假设我有一个xml的结构:

<root>
    <a>
        <b/>
        <c/>
    </a>
    <a>
        <b/>
    </a>
    <a>
        <d/>
        <b/>
    </a>
    <a>
        <d/>
        <c/>
    </a>
</root>
Run Code Online (Sandbox Code Playgroud)

我可以用一个Xpath获得所有节点B或C的A节点.我知道我可以单独寻找B和看到的结果并且总结后删除重复的结果(如下所示)但是我我相信有更好的方法.

List1 = Xpath(./a/b/..)
List2 = Xpath(./a/c/..)
MyResult = (List1 + List2 - Repetitions)
Run Code Online (Sandbox Code Playgroud)

我想这个解决方案也适用于AND运算符.

xpath operators

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

VCD仅通过modelsim转储设计的子部分

我有一个很大的设计,包括测试平台,一些测试电路和被测电路本身.我使用modelsim来模拟设计,我希望有一个模拟转储.我被建议使用以下命令生成转储:

vcd file myvcd1.vcd
vcd add -r /sim_minimips/*
Run Code Online (Sandbox Code Playgroud)

它接缝工作,但我想要的是只为被测电路生成转储.

我试图使用相同的命令来指定我想要考虑的文件的名称:

vcd file myvcd2.vcd
vcd add -r /minimips/*
Run Code Online (Sandbox Code Playgroud)

但是生成了以下错误:

Error vsim 3561 No object matching minimips
Run Code Online (Sandbox Code Playgroud)

我不明白错误,我不确定即使这是隔离子部分的正确程序.

有谁知道怎么做或知道我在哪里可以得到一个关于这个价值变化转储的体面的简单教程?

我附上我的测试台实体:

library IEEE;
use IEEE.std_logic_1164.all;

library std;
use std.textio.all;

library work;
use work.pack_mips.all;

entity sim_minimips is
end;

architecture bench of sim_minimips is

  component minimips is
  port (
      clock    : in std_logic;
      reset    : in std_logic;

      ram_req  : out std_logic;
      ram_adr  : out bus32;
      ram_r_w  : out std_logic;
      ram_data : inout bus32;
      ram_ack  : …
Run Code Online (Sandbox Code Playgroud)

simulation dump vhdl modelsim

0
推荐指数
1
解决办法
3944
查看次数

python在正则表达式中匹配"\"

我很难将字符串"\"与一个regualar表达式匹配.我试过以下但是没有用.

print re.sub('([\"\\\\\"])', "-", myText, 0)
Run Code Online (Sandbox Code Playgroud)

任何的想法?

谢谢,

python regex

0
推荐指数
1
解决办法
70
查看次数

在函数方法中使用std :: thread

这段代码按预期工作(它打印"procedure()")

#include <iostream>
#include <thread>

class myClass{
public:
    myClass(){};
    ~myClass(){};
    void run(){std::cout << "run()"<<std::endl;};
    void procedure(){std::cout << "procedure()"<<std::endl;};
};


int main(int argc, char *argv[]){
    myClass* c = new myClass();
    std::thread c_thread(&myClass::procedure,c);
    c_thread.join();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

现在我不喜欢调用者必须知道我的类启动一个线程的事实!所以我会优先在run方法的构造函数中隐藏启动线程.所以我写了下面的代码:

#include <iostream>
#include <thread>
class myClass{
public:
    myClass(){};
    ~myClass(){};
    void run(){
        std::cout << "run()"<<std::endl;
        std::thread c_thread(&myClass::procedure,this);     
    };
    void procedure(){std::cout << "procedure()"<<std::endl;};
};


int main(int argc, char *argv[]){
    myClass* c = new myClass();

    c->run();
    while(true){}

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

这最终会出现以下错误:

[Thread debugging using libthread_db enabled]
Using …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading c++11

0
推荐指数
1
解决办法
122
查看次数