5

単純な XPath 式と C# を使用してノード コンテンツを取得する方法に関する記事をたくさん見つけました。たとえば、次のようになります。

XPath:

/bookstore/author/first-name

C#:

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

nodes = navigator.Select(xpathExpression);

要素内にあるコンテンツを取得する方法を知りたいのですが、同じ要素が別の要素と別の要素の中にあります。
以下のコードを見てください。

<Cell>          
    <CellContent>
        <Para>                               
            <ParaLine>                      
                <String>ABCabcABC abcABC abc ABCABCABC.</string> 
            </ParaLine>                      
        </Para>     
    </CellContent>
</Cell>

要素ABCabcABC abcABC abc ABCABCABC.からコンテンツを抽出したいだけです。String

XPath 式.Net C#を使用して問題を解決する方法を知っていますか?

4

3 に答える 3

24

数秒間グーグルc# .net xpathで検索すると、この記事が見つかります。この記事XPathDocumentでは、簡単に変更して使用できる例を提供していXPathNavigatorますXPathNavigator::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

xPath 構文についてもっと読むことをお勧めします。はるかに。

于 2013-04-15T10:17:44.243 に答える
3

Linq to XML を使用して、指定した要素の値を取得することもできます

var list = XDocument.Parse("xml string").Descendants("ParaLine")
                 .Select(x => x.Element("string").Value).ToList();

上記のクエリから、ParaLine タグ内にあるすべての文字列要素の値を取得します。

于 2013-04-15T10:45:41.983 に答える
3
navigator.SelectSingleNode("/Cell/CellContent/Para/ParaLine/String/text()").Value
于 2013-04-15T10:09:35.560 に答える