XPath中的// * [*]和// * [。]有什么区别?

时间:2019-02-02 23:18:32

标签: xml xpath

我试图了解

之间的区别
*Main> isPartOf [('a'),('b'),('c')] ('z') 
-1

这些返回不同数量的元素。

我还可以在其中使用代替属性

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import javax.imageio.*;
import javax.swing.*;

/**
 * This class demonstrates how to load an Image from an external file
 */
public class LoadImageApp extends Component {

BufferedImage img;

public void paint(Graphics g) {
    g.drawImage(img, 0, 0, null);
}

public LoadImageApp() {
   try {
       img = ImageIO.read(getClass().getResource("/resources/java.png"));//cannot found image
   } catch (IOException e) {
   }

}

public Dimension getPreferredSize() {
    if (img == null) {
         return new Dimension(100,100);
    } else {
       return new Dimension(img.getWidth(null), img.getHeight(null));
   }
}

public static void main(String[] args) {

    JFrame f = new JFrame("Load Image Sample");

    f.addWindowListener(new WindowAdapter(){
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });

    f.add(new LoadImageApp());
    f.pack();
    f.setVisible(true);
}
}

不仅是文本情况?语法是什么样的?因为我尝试过

//*[.] and //*[*] 

最后一个仅适用于文本,而不适用于大写

 //tag[@Attribute="value"] 

例如,那么什么时候可以更改点而不是属性?

1 个答案:

答案 0 :(得分:3)

dataframe = [] for elements in tableElements: row = {} columnName1 = find_element_by_class_name('td') .. 将选择所有元素。它等效于//*[.]

//*将选择具有至少一个子元素的所有元素。

//*[*]在语法上无效。

//tag[@.="value"]将选择所有//tag[.="value"]元件,其string value等于tag。例如,对于此XML,

value

<tag id="r"> <tag id="a">value</tag> <tag id="b">val<br/>ue</tag> <tag id="c"><span>val</span><span>ue</span></tag> <tag id="f"> value</tag> <tag id="g">Value</tag> </tag> 将选择

//tag[.="value"]

另请参阅Testing text() nodes vs string values in XPath