rust 和 serde-xml-rs 可以解析来自 XML 文件的注释吗?
Can rust and serde-xml-rs parse comments from XML files?
<foo>
<!-- 2021-03-17 08:15:00 EST -->
<row>
<value>100</value>
</row>
</foo>
我想从 XML 文件中获取评论,想知道这是否可行,如果可行,如何实现?我没有看到这样的例子。在上面的例子中,我想得到“2021-03-17 08:15:00 EST”
不,目前 serde-xml-rs 不支持解析来自 XML 文件的注释。请参阅源代码中的 here;他们一起跳过评论。
但是有一个开放的 pull request 添加对解析注释的支持。
所以如果你现在想解析评论(免责声明这是不稳定的,因为你使用某人的 github 叉子来做)你可以使用上面拉取请求的作者的叉子这样:
// Cargo.toml contains:
//
// [dependencies]
// serde = {version = "1.0", features = ["derive"]}
// serde-xml-rs = {git = "https://github.com/elmarco/serde-xml-rs.git", branch = "comment"}
use serde::Deserialize;
use serde_xml_rs::from_reader;
#[derive(Debug, Deserialize)]
pub struct Foo {
#[serde(rename = "$comment")]
pub date: Option<String>,
pub row: RowValue,
}
#[derive(Debug, Deserialize)]
pub struct RowValue {
pub value: i32,
}
fn main() {
let input = "<foo> \
<!-- 2021-03-17 08:15:00 EST --> \
<row> \
<value>100</value> \
</row> \
</foo>";
let foo: Foo = from_reader(input.as_bytes()).unwrap();
println!("input={:#?}", foo);
}
<foo>
<!-- 2021-03-17 08:15:00 EST -->
<row>
<value>100</value>
</row>
</foo>
我想从 XML 文件中获取评论,想知道这是否可行,如果可行,如何实现?我没有看到这样的例子。在上面的例子中,我想得到“2021-03-17 08:15:00 EST”
不,目前 serde-xml-rs 不支持解析来自 XML 文件的注释。请参阅源代码中的 here;他们一起跳过评论。
但是有一个开放的 pull request 添加对解析注释的支持。
所以如果你现在想解析评论(免责声明这是不稳定的,因为你使用某人的 github 叉子来做)你可以使用上面拉取请求的作者的叉子这样:
// Cargo.toml contains:
//
// [dependencies]
// serde = {version = "1.0", features = ["derive"]}
// serde-xml-rs = {git = "https://github.com/elmarco/serde-xml-rs.git", branch = "comment"}
use serde::Deserialize;
use serde_xml_rs::from_reader;
#[derive(Debug, Deserialize)]
pub struct Foo {
#[serde(rename = "$comment")]
pub date: Option<String>,
pub row: RowValue,
}
#[derive(Debug, Deserialize)]
pub struct RowValue {
pub value: i32,
}
fn main() {
let input = "<foo> \
<!-- 2021-03-17 08:15:00 EST --> \
<row> \
<value>100</value> \
</row> \
</foo>";
let foo: Foo = from_reader(input.as_bytes()).unwrap();
println!("input={:#?}", foo);
}