如何仅使用xpath和.NET C#获取元素内容

maz*_*ury 2 .net c# xml xpath

我发现了很多关于如何通过使用简单的xpath表达式和C#来获取节点内容的文章,例如:

a)xpath

/bookstore/author/first-name
Run Code Online (Sandbox Code Playgroud)

b)C#

string xpathExpression = "/bookstore/author/first-name";

nodes = navigator.Select(xpathExpression);
Run Code Online (Sandbox Code Playgroud)

我想知道如何获取元素内部的内容,并且相同的元素在另一个元素内部,另一个元素内部.只需看看下面的代码:

<Cell>          
    <CellContent>
        <Para>                               
            <ParaLine>                      
                <String>ABCabcABC abcABC abc ABCABCABC.</string> 
            </ParaLine>                      
        </Para>     
    </CellContent>
</Cell>
Run Code Online (Sandbox Code Playgroud)

我只想ABCabcABC abcABC abc ABCABCABC.从String元素中提取内容.

你知道如何通过使用Xpath表达式.NET C#来解决问题吗?

Vyk*_*tor 18

之后谷歌搜索c# .net xpath了几秒钟,你会发现这篇文章,它提供了例子,你可以很容易地修改使用XPathDocument,XPathNavigatorXPathNavigator::SelectSingleNode():

XPathNavigator nav;
XPathDocument docNav;
string xPath;

docNav = new XPathDocument("c:\\books.xml");
nav = docNav.CreateNavigator();
xPath = "/Cell/CellContent/Para/ParaLine/String/text()";

string value = nav.SelectSingleNode(xPath).Value
Run Code Online (Sandbox Code Playgroud)

我建议更多地阅读xPath语法.多得多.

  • @mazury比它不是有效的XML,你不能使用`xPath` (2认同)