小编ily*_*725的帖子

使用ElementTree保存XML文件

我正在尝试开发简单的Python(3.2)代码来读取XML文件,进行一些修正并将其存储回来.但是,在存储步骤中,ElementTree会添加此命名空间命名法.例如:

<ns0:trk>
  <ns0:name>ACTIVE LOG</ns0:name>
<ns0:trkseg>
<ns0:trkpt lat="38.5" lon="-120.2">
  <ns0:ele>6.385864</ns0:ele>
  <ns0:time>2011-12-10T17:46:30Z</ns0:time>
</ns0:trkpt>
<ns0:trkpt lat="40.7" lon="-120.95">
  <ns0:ele>5.905273</ns0:ele>
  <ns0:time>2011-12-10T17:46:51Z</ns0:time>
</ns0:trkpt>
<ns0:trkpt lat="43.252" lon="-126.453">
  <ns0:ele>7.347168</ns0:ele>
  <ns0:time>2011-12-10T17:52:28Z</ns0:time>
</ns0:trkpt>
</ns0:trkseg>
</ns0:trk>
Run Code Online (Sandbox Code Playgroud)

代码段如下:

def parse_gpx_data(gpxdata, tzname=None, npoints=None, filter_window=None,
                   output_file_name=None):
        ET = load_xml_library();

    def find_trksegs_or_route(etree, ns):
        trksegs=etree.findall('.//'+ns+'trkseg')
        if trksegs:
            return trksegs, "trkpt"
        else: # try to display route if track is missing
            rte=etree.findall('.//'+ns+'rte')
            return rte, "rtept"

    # try GPX10 namespace first
    try:
        element = ET.XML(gpxdata)
    except ET.ParseError as v:
        row, column = v.position
        print ("error on …
Run Code Online (Sandbox Code Playgroud)

python elementtree

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

templates:父类成员变量在继承的类中不可见

我有以下4个文件:

  1. arrayListType.h:声明并定义arrayListType类作为模板
  2. unorderedArrayListType.h:继承自arrayListTypeclass和Declares并定义unorderedArrayListType为模板.
  3. main1.cpp:测试程序测试unorderedArrayListType类.
  4. Makefile

我得到一个编译错误的访问受保护的变量时说,arrayListTypeunorderedArrayListType举例说:"在此范围内未声明的长度",其中长度和列表在保护变量"在此范围内不宣布名单" arrayListType类.

以下是代码:
arrayListType.h

#ifndef H_arrayListType  
#define H_arrayListType

#include <iostream>

using namespace std;

template <class elemType>
class arrayListType
{

public:

    const arrayListType<elemType>&operator=(const arrayListType<elemType>&);

    bool isEmpty() const;
    bool isFull() const;
    int listSize() const;
    int maxListSize() const;
    void print() const;
    bool isItemAtEqual(int location, const elemType& item) const;
    virtual void insertAt(int location, const elemType& insertItem) = 0;
    virtual void insertEnd(const elemType& insertItem) …
Run Code Online (Sandbox Code Playgroud)

c++ inheritance templates makefile class

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

解除引用类型惩罚指针将破坏严格别名规则

我有一个unsigned char指针,其中包含一个结构.现在我想要执行以下操作

unsigned char buffer[24];

//code to fill the buffer with the relevant information.

int len = ntohs((record_t*)buffer->len);
Run Code Online (Sandbox Code Playgroud)

其中record_t结构包含一个名为len的字段.我无法这样做并且收到错误.

error: request for member ‘len’ in something not a structure or union.
Run Code Online (Sandbox Code Playgroud)

然后我尝试了:

int len = ntohs(((record_t*)buffer)->len);
Run Code Online (Sandbox Code Playgroud)

这样才能使操作员优先.那给了我warning: dereferencing type-punned pointer will break strict-aliasing rules.

然后我宣布

record_t *rec = null;

rec = (record_t*)
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

c gcc pointers

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

Dockerfile中的交互式命令

我正在尝试使用docker build适当的命令自动创建开发Docker镜像Dockerfile.我需要在RUN命令中运行的脚本之一要求用户单击并阅读其许可协议.因此有两个问题:

  1. RUNa 中所有命令的输出在哪里Dockerfile
  2. 什么解决方案可以与上述命令交互?现在,docker build命令卡住了,要求用户在无限循环中输入.

docker dockerfile

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

EXPECT_CALLs的强制序列

我正在尝试测试两个串口写+读取调用.第一个必须阻塞read101ms,从而导致超时错误.第二个应该运行正常.根据谷歌模拟手册,InSequence变量应该确保.这是代码:

  {
    // This variable ensures the sequence order
    InSequence s;

    EXPECT_CALL(serial_, Write(_, _))
        .With(ElementsAreArray(command1_))
        .WillOnce(Invoke(Write));

    EXPECT_CALL(serial_, Read(_, _, _))
        .WillOnce(Invoke(TimeoutRead));

    EXPECT_CALL(serial_, Write(_, _))
        .With(ElementsAreArray(command2_))
        .WillOnce(Invoke(Write));

    EXPECT_CALL(serial_, Read(_, _, _))
        .Times(1)
        .WillOnce(DoAll(SetArrayArgument<0>(response_begin, response_end),
                        SetArgumentPointee<2>(response_.size()),
                        Return(true)));
  }
Run Code Online (Sandbox Code Playgroud)

TimeoutRead只是一个导致当前线程休眠101ms的函数.但是,我不断收到此运行时错误:

[ RUN      ] MasterTest.LostReply
/host/Users/blah/work/bitbucket/master_test.cc:631: Failure
Mock function called more times than expected - returning default value.
    Function call: Read(0x5652c3f31120 pointing to "\xFF\xFF", 4096, 0x7ffda19d2960)
          Returns: false
         Expected: to be called once
           Actual: called twice - …
Run Code Online (Sandbox Code Playgroud)

c++ googletest googlemock gmock

7
推荐指数
0
解决办法
759
查看次数

初始化初始化列表中的unordered_map

我正试图找到一个可能是一个非常微不足道的问题的解决方案.我想const unordered_map在类初始化列表中初始化我.但是我还没有找到编译器(GCC 6.2.0)将接受的语法.代码链接在这里.

#include <unordered_map>

class test {
 public:
    test()
      : map_({23, 1345}, {43, -8745}) {}

 private:
   const std::unordered_map<long, long> map_;
 };
Run Code Online (Sandbox Code Playgroud)

错误:

main.cpp: In constructor 'test::test()':
main.cpp:6:36: error: no matching function for call to 'std::unordered_map<long int, long int>::unordered_map(<brace-enclosed initializer list>, <brace-enclosed initializer list>)'
  : map_({23, 1345}, {43, -8745}) {}
                                ^
Run Code Online (Sandbox Code Playgroud)

复制常量是否不允许在初始化列表中初始化?或者语法必须不同?

c++ unordered-map initialization c++11 c++14

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

在Eclipse中自动生成C/C++函数注释

这是这个问题的基本重复.但是,我正在寻找可以在C/C++中使用的相同答案 - 通过所有参数的描述向函数添加注释的一些简单方法.在SLickEdit中这很简单 - 只需按Ctrl + SHift + D. 上述问题的所有答案和方法都是针对Java的.

谢谢.

c eclipse slickedit

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

如果先前超时,如何运行条件步骤

我有一个buildbot构建工厂,有几个步骤.其中一个步骤会定期超时,导致buildbot抛出异常并退出.但是,即使在这种情况下,我也希望能够存储生成的日志.一种选择是添加仅在上一步超时时才运行的步骤.使用doStepIf是可能的.但是,没有办法看到状态,因为TIMEOUT只有SUCCESS, WARNINGS, FAILURE, or SKIPPED.解决这个问题的最佳方法是什么?

doStepIf功能的一个例子:

from buildbot.status.builder import Results, SUCCESS

def doStepIf(step):
    allSteps = step.build.getStatus().getSteps()
    lastStep = allSteps[-1]
    rc = lastStep.getResults()[0] # returns a tuple of (rc, string)
    # if the rc == SUCCESS then don't continue, since we don't want to run this step
    return Results[rc] == Results[SUCCESS]
Run Code Online (Sandbox Code Playgroud)

python buildbot

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

为什么要使用curses.ascii.islower?

我刚刚偶然发现了curses.ascii.islower().它检查传递的字符是否为小写.与str.islower()相比,使用此函数有什么好处?是的,它需要将ASCII字符转换为字符串对象,这会增加开销.但除此之外还有什么优势?

我发现的一个缺点是需要额外的库,可能有也可能没有.

python python-curses

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

clang-format 标头包含防护

我想检查clang-format我的每个标头是否都有适当的包含防护。例如,对于文件dopelib/dopestuff/whatitisyo.h,我希望代码的格式如下:

#ifndef DOPELIB_DOPESTUFF_WHATITISYO_H
#define DOPELIB_DOPESTUFF_WHATITISYO_H

/** Code here. **/

#endif  // DOPELIB_DOPESTUFF_WHATITISYO_H
Run Code Online (Sandbox Code Playgroud)

可以clnag-format检查这个结构并确保包含保护存在并且它的命名与中的文件名适当#ifndef(类似于 cpplint 的作用)?

clang-format

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