使用C#/ DOM读取不同的XML

时间:2010-11-18 02:20:38

标签: c# xml

我目前正在使用DOM在我的C#项目中导航xml。但是,我最近遇到的一些XML有点不同。

而通常我有:

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <entry>
    <author>
      <name>Me =)</name>
    </author>
    <content>
      <somefield1>
        <Subfield>subfield data</subfield>
      </somefield>
    </content>
  </entry>
</feed>

并且可以使用foreach条目作为条目,chooseinglenode(/ content / somefield1 / subfield),innertext导航以从每个条目的子字段获取数据,新XML如下所示:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<atom:feed xmlns:atom="http://www.w3.org/2005/Atom">
    <atom:entry>
        <atom:author>
            <name>Me =)</name>
        </atom:author>
        <atom:content>
          <somefield1>
            <Subfield>subfield data</subfield>
          </somefield>
        </atom:content>
    </atom:entry>
</atom:feed>

chooseinglenode(/ atom:content / somefield1 / subfield)肯定不会起作用......有什么建议吗?

1 个答案:

答案 0 :(得分:1)

atom:只是命名空间,可能你可能会忽略它。如果它仍然不起作用,您可能必须使用:

XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
nsmgr.AddNamespace("atom", "http://www.w3.org/2005/Atom");

selectsinglenode("atom:content/somefield1/subfield", nsmgr);

记录在案here