OwnedName 类型从何而来?
Where does the OwnedName type come from?
我正在尝试使用 rust-xml 解析 rust 中的 XML 文件,但在匹配标签名称时遇到了问题:
for e in parser.events() {
match e {
XmlEvent::StartElement { name, attributes: _, namespace: _ } => {
match name {
"LexicalEntry" => {
这是我收到的错误消息:
enter codesrc/main.rs|127 col 21| 127:35 error: mismatched types:
|| expected `xml::name::OwnedName`,
|| found `&'static str`
|| (expected struct `xml::name::OwnedName`,
|| found &-ptr) [E0308]
|| src/main.rs:127 "LexicalEntry" => {
|| ^~~~~~~~~~~~~~
here
我觉得这令人惊讶,因为 OwnedName 标识符没有出现在我项目的代码或依赖项中的任何地方(包括 rust 源!):
$ rgrep OwnedName . Binary file ./woordenboek/src/.main.rs.swp matches
./woordenboek/src/main.rs:
//xml::name::OwnedName("LexicalEntry") => { Binary file
./woordenboek/target/debug/deps/libxml-5882f08ff8adc5e5.rlib matches
我应该匹配的 OwnedName 类型来自哪里?编译器是否出于某种原因发明了某种类型并将其插入到 xml 库中?
xml::name::OwnedName
是 XmlEvent::StartElement
变体的 name
字段的类型,而不是 &'static str
(字符串文字)。
很抱歉我没有在任何地方放置 xml-rs
的 API 文档 :( 我会尽快解决这个问题。
更新修复了,你可以找到最新的文档here. For example, here is OwnedName
。
OwnedName
是一个单独的结构,因为 XML 名称不仅仅是字符串 - 它们由本地名称、名称空间 URI 和可选前缀组成,因此它们具有特殊的表示形式。为了仅检查本地名称,您可以使用 OwnedName
的 local_name
字段,它是 String
:
for e in parser.events() {
match e {
XmlEvent::StartElement { name, attributes: _, namespace: _ } => {
match &name.local_name[..] {
"LexicalEntry" =>
我正在尝试使用 rust-xml 解析 rust 中的 XML 文件,但在匹配标签名称时遇到了问题:
for e in parser.events() {
match e {
XmlEvent::StartElement { name, attributes: _, namespace: _ } => {
match name {
"LexicalEntry" => {
这是我收到的错误消息:
enter codesrc/main.rs|127 col 21| 127:35 error: mismatched types:
|| expected `xml::name::OwnedName`,
|| found `&'static str`
|| (expected struct `xml::name::OwnedName`,
|| found &-ptr) [E0308]
|| src/main.rs:127 "LexicalEntry" => {
|| ^~~~~~~~~~~~~~
here
我觉得这令人惊讶,因为 OwnedName 标识符没有出现在我项目的代码或依赖项中的任何地方(包括 rust 源!):
$ rgrep OwnedName . Binary file ./woordenboek/src/.main.rs.swp matches ./woordenboek/src/main.rs:
//xml::name::OwnedName("LexicalEntry") => { Binary file ./woordenboek/target/debug/deps/libxml-5882f08ff8adc5e5.rlib matches
我应该匹配的 OwnedName 类型来自哪里?编译器是否出于某种原因发明了某种类型并将其插入到 xml 库中?
xml::name::OwnedName
是 XmlEvent::StartElement
变体的 name
字段的类型,而不是 &'static str
(字符串文字)。
很抱歉我没有在任何地方放置 xml-rs
的 API 文档 :( 我会尽快解决这个问题。
更新修复了,你可以找到最新的文档here. For example, here is OwnedName
。
OwnedName
是一个单独的结构,因为 XML 名称不仅仅是字符串 - 它们由本地名称、名称空间 URI 和可选前缀组成,因此它们具有特殊的表示形式。为了仅检查本地名称,您可以使用 OwnedName
的 local_name
字段,它是 String
:
for e in parser.events() {
match e {
XmlEvent::StartElement { name, attributes: _, namespace: _ } => {
match &name.local_name[..] {
"LexicalEntry" =>