猿问

如何使用不带属性的 SelectNode() 检索 XML 节点列表?

我正在尝试从 XML 文件中解析出简单的字符串列表。我只想检索没有指定属性的值。


例如,在此 XML 片段中:


<meaning>sultry</meaning>

<meaning>hot</meaning>

<meaning>summer heat</meaning>

<meaning m_lang="fr">chaud</meaning>

<meaning m_lang="fr">torride</meaning>

...

呼唤SelectNodes("//meaning")将返回闷热、炎热、夏日炎热、chaud、torride。然而,我只想检索标记为 only 的值<meaning>,而不是<meaning m_lang="fr>,即我只想拥有闷热、炎热、夏日的炎热。


有没有一种简单的方法只检索非属性值?它们始终是列表中的第一个,但可能有一个值或多个值。


桃花长相依
浏览 77回答 1
1回答

绝地无双

是的,您需要使您的XPath 表达式(您传递给 SelectNodes() 的字符串)更加具体。在本例中,您想要查找没有任何附加属性的节点,因此您可以像这样修改 XPath 表达式:SelectNodes("//meaning[not(@*)]")分解上面的内容:“meaning”选择所有“meaning”元素,“@*”选择至少具有一个属性的所有元素,“不”否定规则因此,这意味着“选择所有不具有至少一个属性的‘含义’元素”。
随时随地看视频慕课网APP
我要回答