Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一次选择具有多个XPath的XML节点_C#_Winforms_Visual Studio 2008_Xpath - Fatal编程技术网

C# 一次选择具有多个XPath的XML节点

C# 一次选择具有多个XPath的XML节点,c#,winforms,visual-studio-2008,xpath,C#,Winforms,Visual Studio 2008,Xpath,可能重复: 示例XML文件: <Book> <Page id="1"> <Head>Preface</Head> <Body> <Paragraph> <Line> <Word> <Char>T</Char> <Char>h</Char> <Char&

可能重复:

示例XML文件:

<Book>
<Page id="1">
<Head>Preface</Head>
<Body>
<Paragraph>
    <Line>
        <Word>
            <Char>T</Char>
            <Char>h</Char>
            <Char>i</Char>
            <Char>s</Char>
        </Word>
        <Word>is sample xml file.</Word>
    </Line>
</Paragraph>
</Body>
</Page>
对于仅具有节点的单词选择,xPath表达式为:

string Word_Char_XPath="//CHAR[contains(translate(text(),'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ'),'I')]/..";
string Word_XPath="//WORD[contains(translate(text(), abcdefghijklmnopqrstuvwxyz, ABCDEFGHIJKLMNOPQRSTUVWXYZ), 'I')]";
选择包含“i”的单词的代码

问题:
通过“或”两个xpath表达式,它返回true或false,但如果所有word节点都要根据匹配条件(两个xpath)进行选择,那么如何实现它呢?

好吧,我通过从Net获得一些帮助来解决这个问题。 在使用“”运算符的情况下,使用“|”(管道符号)运算符组合两个XPath表达式的值。它将选择xml文件中与XPath表达式中的任一条件匹配的所有节点。 快乐编程

XmlDocument objXmlDoc = new XmlDocument();
XmlNodeList objXmlNodeList;
objXmlDoc.Load(sFilePath);
objXmlNodeList = objXmlDoc.SelectNodes(Word_Char_XPath+" or "+ Word_XPath);