不接受子节点

本文关键字:子节点 不接受 | 更新日期: 2023-09-27 18:37:19

我正在用C#编写一个程序,该程序将从服务器获取数据,将其写入文件,然后读取文件以获取包含的数据。最后一部分是问题。我得到了我的 XML 文件流,XML 文件似乎很好,但除了根节点之外,我的程序不接受任何子节点,即使在列表中它计算了所有 700 个子节点。正在检查我的拼写,地址,树...到目前为止没有任何效果。

XML 数据:

<?xml version="1.0" encoding="UTF-8"?>
<uniprot xmlns="http://uniprot.org/uniprot" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://uniprot.org/uniprot http://www.uniprot.org/support/docs/uniprot.xsd">
  <entry dataset="Swiss-Prot" created="2005-03-01" modified="2013-10-16" version="51">
    <accession>P69430</accession>
    <accession>O65938</accession>
    <accession>P27856</accession>
    <name>TATA_ECO57</name>
    <protein>
      <recommendedName>
        <fullName>Sec-independent protein translocase protein TatA</fullName>
      </recommendedName>
    </protein>

程序:

Datapath = startupPath + "''" + Data[0, 0] + ".xml"; 
XmlDocument XMLdoc = new XmlDocument();
            XMLdoc.Load(Datapath); 
 XmlNodeList xnList = XMLdoc.SelectNodes("//*"); //the list shows all 700 entries so the path etc are correct
var node = XMLdoc.SelectSingleNode("uniprot/entry/protein/recommendedName/fullName").InnerText;

一旦我尝试从 uniprot 解决任何子节点,它只是空,这让我发疯。有人可以帮忙吗?

不接受子节点

您是否尝试过使用命名空间?

        XmlDocument doc = new XmlDocument();
        XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
        nsmgr.AddNamespace("ns", "http://uniprot.org/uniprot");
        var node = doc.SelectSingleNode("//ns:exampleNode", nsmgr);

试试这个:XmlNode node = doc。SelectSingleNode("//uniprot//entry/protein/recommendedName/fullName"); 节点。InnerXml;