如何使用GetElementsByTagName来获取最后一个元素的innerText,如果有'多个具有相同名称

本文关键字:如果 获取 GetElementsByTagName 何使用 最后一个 元素 innerText | 更新日期: 2023-09-27 17:49:19

我有这个XML

<WordDefinition>
  <Word>analyses</Word>
  <Definitions>
    <Definition>
      <Word>analyses</Word>
      <Dictionary>
        <Id>wn</Id>
        <Name>WordNet (r) 2.0</Name>
      </Dictionary>
      <WordDefinition>analyses
         See {analysis}
      </WordDefinition>
    </Definition>
    <Definition>
      <Word>analyses</Word>
      <Dictionary>
        <Id>wn</Id>
        <Name>WordNet (r) 2.0</Name>
      </Dictionary>
      <WordDefinition>analysis
     n 1: an investigation of the component parts of a whole and their
          relations in making up the whole
      </WordDefinition>
    </Definition>
  </Definitions>
</WordDefinition>

我编写了这个c#来获得"WordDefinition"的innerText,如果只有一个"WordDefinition",它可以正常工作。然而,如果有一个或多个我想得到最后一个的innerText。

 var doc = new XmlDocument();
 doc.LoadXml(responseFromServer);
 var el = doc.GetElementsByTagName("WordDefinition");

有人知道我该怎么做吗?对于这个例子,我想要得到this的innerText:

  <WordDefinition>analysis
 n 1: an investigation of the component parts of a whole and their
      relations in making up the whole
  </WordDefinition>

如何使用GetElementsByTagName来获取最后一个元素的innerText,如果有'多个具有相同名称

对不起,VB…使用XElement,您可以获得最后一个WordDefinition,如下所示

    Dim doc As XElement
    ' to load   doc = XElement.Load("path/URI here")
    ' for testing
    doc = <WordDefinition>
              <Word>analyses</Word>
              <Definitions>
                  <Definition>
                      <Word>analyses</Word>
                      <Dictionary>
                          <Id>wn</Id>
                          <Name>WordNet (r) 2.0</Name>
                      </Dictionary>
                      <WordDefinition>analyses
     See {analysis}
  </WordDefinition>
                  </Definition>
                  <Definition>
                      <Word>analyses</Word>
                      <Dictionary>
                          <Id>wn</Id>
                          <Name>WordNet (r) 2.0</Name>
                      </Dictionary>
                      <WordDefinition>analysis
 n 1: an investigation of the component parts of a whole and their
      relations in making up the whole
  </WordDefinition>
                  </Definition>
              </Definitions>
          </WordDefinition>
    'get the last WordDefinition
    Dim lastDef As XElement = doc...<WordDefinition>.LastOrDefault

如果没有测试数据,它将只是:

    Dim doc As XElement = XElement.Load("path/URI here")
    'get the last WordDefinition
    Dim lastDef As XElement = doc...<WordDefinition>.LastOrDefault

你可以做一些其他的事情…

所有定义

    Dim allDefs As IEnumerable(Of XElement) = doc...<WordDefinition>

粗过滤

    Dim whDef As String = "analys"
    Dim multiDef As IEnumerable(Of XElement) = From wd In doc...<WordDefinition>
                                                  Where wd.Value.Trim.StartsWith(whDef)
                                                  Select wd

相关文章: