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

时间:2013-10-11 01:59:40

标签: c# xml file-io io xmlwriter

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

例如:

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

除了“无用的jiberish”之外,它是完美的xml。读取没有任何问题,但是使用带有

的streamwriter进行编写
XmlWriterSettings settings = new XmlWriterSettings();
settings.NewLineOnAttributes = true;
settings.Indent = true;

它写得很完美,直到“无用的jiberish”

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

如果我从xml文档中删除“Useless jiberish”,它可以完美地运行。但是我没有这个选择。有什么建议/线索,为什么会发生这种情况?我失踪可能很简单。

任何建议都有帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以考虑使用System.Xml.Linq中的XDocument类。加载文件看起来像:

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

        }

有关XDocument here的更多信息。