我目前正在使用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)肯定不会起作用......有什么建议吗?
答案 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