在 XML 中,如何忽略未被标记包围的悬空文本

本文关键字:包围 文本 XML 何忽略 | 更新日期: 2023-09-27 18:34:47

我遇到了这个问题,我正在阅读的 xml 文件可能有悬空的文本(我不知道那些没有被任何标签包围的文本叫什么(。

例如:

<Book>
    <Title>The Catcher in the Rye</Title>
    <Author>Salinger</Author>
</Book>
Useless jiberish
<Book>
    <Title>Jaws</Title>
    <Author>Benchley</Author>
</Book>

它是完美的xml,除了"无用的jiberish"行。读取没有任何问题,但是使用流编写器写入

XmlWriterSettings settings = new XmlWriterSettings();
settings.NewLineOnAttributes = true;
settings.Indent = true;

它写得很完美,直到"无用的吉伯利"一行

<Book>
    <Title>The Catcher in the Rye</Title>
    <Author>Salinger</Author>
</Book>Useless jiberish<Book><Title>Jaws</Title><Author>Bencheley</Author>

如果我从xml文档中删除"无用的jiberish",它可以完美运行。但是我没有那个选择。是否有任何建议/线索说明为什么会发生这种情况?我错过的可能真的很简单。

任何建议都会有所帮助。

谢谢。

在 XML 中,如何忽略未被标记包围的悬空文本

你可以考虑使用System.Xml.Linq中的XDocument类。 加载文件将如下所示:

        string file = @"c:'test'movies.xml";
        XDocument doc = XDocument.Load(file);
        foreach (XElement e in doc.Root.Descendants())
        {
        }

有关XDocument的更多信息可以在这里找到。