小编Joã*_*ulo的帖子

使用python通过标签文本进行XML搜索

这是我的代码和XML:

xml_string = """
<data>
    <user>
        <name>123</name>
    </user>
    <user>
        <name>456</name>
    </user>
</data>
"""

import xml.etree.ElementTree as ET
root = ET.fromstring(xml_string)
Run Code Online (Sandbox Code Playgroud)

我正在尝试查找文本值等于123的<user>标签<name>

我尝试过的

result = root.findall("./user[name = '123']")
result = root.findall("./user[./name = '123']")
result = root.findall("./user[/name = '123']")
result = root.findall("./user[./name text() = '123']")
Run Code Online (Sandbox Code Playgroud)

这些尝试均无济于事。我想念什么?

我得到的错误:

raise SyntaxError("invalid predicate") 
File "<string>", line None
SyntaxError: invalid predicate
Run Code Online (Sandbox Code Playgroud)

python xml

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

过滤器对象返回一个属性

我正在尝试过滤返回特定属性列表的对象。看看我试过的:

class Foo:
    def __init__(self,a,b):
        self.a = a
        self.b = b

x = Foo(1,2)
y = Foo(1,3)
z = Foo(2,4) 
result = filter(lambda f: f.b if f.a == 1 else None, [x,y,z])
print(list(result))
Run Code Online (Sandbox Code Playgroud)

我期待这样的列表[2, 3],但它返回给我一个foo对象列表。有没有办法只使用filter其他功能来做到这一点?例如,我想避免使用mapfilter

python filter

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

在此初始化中创建了多少个临时对象?

我有这个初始化:

const char* str = std::string("a").c_str();
Run Code Online (Sandbox Code Playgroud)

在此初始化中创建了多少个临时对象?

可以"a"算是临时的。宾语?

我知道std::string("a")是临时的。宾语。

的结果c_str()是一个对象,str将其存储。所以这不是临时的。对象,对不对?

c++ temporary-objects

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

内联函数选择标准

我有以下几点:

//a.cpp
inline int f(int x) { return x; }
int g(int x) { return f(x); }

//b.cpp
#include <iostream>
inline int f(int x) { return x + 1; }
extern int g(int);
int main() {
    std::cout << g(2) << f(2) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

输出为22(MSVC和GCC),即a.cpp f内联函数而不是内联函数b.cppf在这种情况下选择功能的标准是什么?

c++ inline one-definition-rule

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

C# - SMTP - GoDaddy - 发送电子邮件

我究竟做错了什么?我正在尝试使用带有GoDaddy webhost的c#发送电子邮件.

SmtpClient client = new SmtpClient("relay-hosting.secureserver.net", 465);
client.EnableSsl = true;
client.UseDefaultCredentials = false;
client.Credentials = new NetworkCredential("emailGODADDY", "password");

MailMessage message = new MailMessage("emailGODADDY", "otherEmail");
message.Subject = txtSubject.Text;
message.Body = txtContent.Value;

client.Send(message);
Run Code Online (Sandbox Code Playgroud)

c# email smtp

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

当原始数据为const时,是否要修改指针指向的UB?

当指针的数据为const时,更改指针指向的位置是否为未定义行为?例:

const char* p = "foo";
p = "boo";
Run Code Online (Sandbox Code Playgroud)

我相信这不是UB,因为指针本身不是const,并且我没有修改该"foo"对象。

额外的问题:并更改不是const指针的const数据?会UB吗?例:

char* const p = "foo";
(*(char**)&p) = (char*)malloc(strlen(p));
Run Code Online (Sandbox Code Playgroud)

c++ pointers const undefined-behavior

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

在预处理器指令中使用除 # 以外的其他字符

有没有办法在定义预处理器指令时使用另一个字符#?例子:

代替:

#if 1
foo
#endif
Run Code Online (Sandbox Code Playgroud)

使用?,例如:

?if 1
foo
?endif
Run Code Online (Sandbox Code Playgroud)

c gcc c-preprocessor

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