【问题标题】:Why i am not able to select font node of this XMLnode? [duplicate]为什么我无法选择此 XMLnode 的字体节点? [复制]
【发布时间】:2023-03-17 15:12:01
【问题描述】:

XMLNode 中的OuterXML 在下方

<d:entry id="_6" d:title="آ" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng"><d:index d:value="آ" d:title="آ" /><h1 xmlns="http://www.w3.org/1999/xhtml">آ</h1><font color="#007000" xmlns="http://www.w3.org/1999/xhtml">interjection</font><br xmlns="http://www.w3.org/1999/xhtml" />
O, oh! (vocative particle)
</d:entry>

我正在尝试这样选择,但它失败了。我能够读取属性和其他节点

var vr_Word_Type = vrNode.SelectSingleNode(".//font", nsmgr);
var vr_Word_Type2 = vrNode.SelectSingleNode(".//font");

这是我的完整代码

XmlDocument rssDoc = new XmlDocument();
rssDoc.Load(@"D:\my.xml");

XmlNamespaceManager nsmgr = new XmlNamespaceManager(rssDoc.NameTable);
nsmgr.AddNamespace("d", "http://www.apple.com/DTDs/DictionaryService-1.0.rng");

XmlNodeList rssItems = rssDoc.SelectNodes("//d:entry", nsmgr);

foreach (XmlNode vrNode in rssItems)
{
    string srTitle = vrNode.Attributes["d:title"]?.Value;
    var vrSubNodes = vrNode.SelectNodes(".//d:index", nsmgr);
    List<string> lstIndex_Values = new List<string>();
    foreach (XmlNode vrD_Val in vrSubNodes)
    {
        lstIndex_Values.Add(vrD_Val.Attributes["d:value"]?.Value);
    }

    var vr_Word_Type = vrNode.SelectSingleNode(".//font", nsmgr);
    var vr_Word_Type2 = vrNode.SelectSingleNode(".//font");

}

【问题讨论】:

    标签: c# .net xml xml-namespaces .net-4.6.2


    【解决方案1】:

    我不知道如何使用默认命名空间,但这种方式似乎可行:

    nsmgr.AddNamespace("x", "http://www.w3.org/1999/xhtml");
    // ...
    var vr_Word_Type = vrNode.SelectSingleNode("x:font", nsmgr);
    

    【讨论】:

      【解决方案2】:

      您仍然需要使用上面代码中添加的命名空间。所以需要类似于下面的东西。

      vrNode.SelectSingleNode("//d:font", nsmgr);
      

      另外,请尝试使用/*/,因为它可能比// 更快。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-26
        • 2021-10-24
        • 1970-01-01
        • 2013-10-14
        相关资源
        最近更新 更多