⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e1076. finding elements by content in a dom document using xpath.txt

📁 这里面包含了一百多个JAVA源文件
💻 TXT
字号:
XPath is an expression language for selecting nodes in an XML file. See e1074 Finding Elements by Absolute Location in a DOM Document Using XPath for common XPath expression for selecting elements. This example adds to those examples by demonstrating the ability to select elements based on their content. 
In an element such as <A>cat</A>, the content is simply "cat". However, in the case of an element that contains other elements, the content is the concatenation of the content of all subelements. For example, in the XML fragment <A>cat<B>,<C>dog,</C>and</B>rat</A>, the content of A is "cat,dog,andrat". 

This example demonstrates some common uses of expressions that use element content; for more information on XPath, see the specification at http://www.w3c.org/TR/xpath. In the example, the result of an XPath expression is shown next to the expression; the numbers are ids of elements in the sample file shown at the end of the example. 

    // Get all elements that equal the string cat
    String xpath = "//*[.='cat']";                       // 2 6
    
    // Get all elements that equal the string dog
    xpath = "//*[.='dog']";                              // (none)
    // Note that element #3 does not match because its
    // content is " dog " rather than "dog"
    
    // Get all elements that contain the string cat
    xpath = "//*[contains(.,'cat')]";                    // 1 2 4 5 6
    
    // Get all elem3 elements that contain the string cat
    xpath = "//elem3[contains(.,'cat')]";                // 6
    
    // Get all elements that contain the string cat,
    // ignoring the contents of any subelements
    xpath = "//*[contains(child::text(),'cat')]";        // 2 4 6
    
    // Get all elements without subelements and whose contents contains the string cat
    xpath = "//*[count(*)=0 and contains(.,'cat')]";     // 2 6

XPath 1.0 does not support case-insensitive matches. However, a simple case-insensitive match can be done using the translate() function, which converts a string by mapping one character into another: 
    // Get all elements that contain the string cat, ignoring case
    xpath = "//*[contains(translate(.,'abcdefghijklmnopqrstuvwxyz',"
        + " 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'),'CAT')]";
    // 1 2 4 5 6 7

To execute an XPath expression, see e1074 Finding Elements by Absolute Location in a DOM Document Using XPath. Here is the sample XML file used in the example: 
    <?xml version="1.0" encoding="UTF-8"?>
    <root id="1">
        <elem1 id="2">cat</elem1>
        <elem1 id="3"> dog </elem1>
        <elem1 id="4">
            cat
            <elem2 id="5">
                <elem3 id="6">cat</elem3>
            </elem2>
            dog
        </elem1>
        <elem1 id="7">Cat</elem1>
    </root>

 Related Examples 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -