0

以下の形式の XmlDocument があります。次の検索を実行すると

XmlNode title = xmlDoc.SelectNodes("//Book/Title[contains(., \"Title3\")]");

タイトルである XmlNode を取得します。その本が出版物に該当するかどうかを調べるにはどうすればよいですか? title.ParentNode.ParentNode.ParentNode が存在するとは限りません。次のように直感的に言う方法があるはずです。

if(title.hasAncestor("Publication") != null)
{
    // do whatever
}

どんな助けでも大歓迎です

<Publications>
    <Novel>
        <Book>
            <Title>Title1</Title>
            <Author>Author1</Author>
            <Year>2000</Year>
        </Book>
        <Book>
            <Title>Title2</Title>
            <Author>Author2</Author>
            <Year>2000</Year>
        </Book>
    </Novel>
    <History>
        <Book>
            <Title>Title3</Title>
            <Author>Author3</Author>
            <Year>2000</Year>
        </Book>
        <Book>
            <Title>Title4</Title>
            <Author>Author4</Author>
            <Year>2000</Year>
        </Book>
    </History>
</Publications>
<StudyGuides>
    <Math>
        <Book>
            <Title>Title5</Title>
            <Author>Author5</Author>
            <Year>2000</Year>
        </Book>
        <Book>
            <Title>Title6</Title>
            <Author>Author6</Author>
            <Year>2000</Year>
        </Book>
    </Math>
    <Science>
        <Book>
            <Title>Title7</Title>
            <Author>Author7</Author>
            <Year>2000</Year>
        </Book>
        <Book>
            <Title>Title8</Title>
            <Author>Author8</Author>
            <Year>2000</Year>
        </Book>
    </Science>
</StudyGuides>
4

2 に答える 2

0
/Publications/*/Book/Title[contains(., 'Title3')]
于 2011-11-10T09:32:15.870 に答える
0

ancestor軸を使用して XPath でこれを行うことができます。

//Book/Title[contains(., "Title3")][ancestor::Publications]
于 2011-11-10T08:21:04.100 に答える