xml beispiele - Attribut mithilfe von XPath abrufen




tutorial deutsch (5)

Gegeben eine XML-Struktur wie folgt:

<?xml version="1.0" encoding="ISO-8859-1"?>

<bookstore>

<book>
  <title lang="eng">Harry Potter</title>
  <price>29.99</price>
</book>

<book>
  <title lang="eng">Learning XML</title>
  <price>39.95</price>
</book>

</bookstore>

Wie könnte ich den Wert von lang (wo lang ist der eng ) für das erste Element erhalten?


Answers

Wie kann ich den Wert von lang (wo lang = eng im Buchtitel) für das erste Element erhalten?

Verwenden :

/*/book[1]/title/@lang

Das bedeutet :

Wählen Sie das Attribut lang des lang aus, das ein untergeordnetes Element des ersten book Buchelements des obersten Elements des XML-Dokuments ist.

Um nur den String-Wert dieses Attributs zu erhalten, verwenden Sie die Standard-XPath-Funktion string() :

string(/*/book[1]/title/@lang)

Sie können unter dem xPath-Muster versuchen,

  XPathExpression expr = xPath.compile("/bookstore/book/title[@lang='eng']")

Hier ist das Snippet, um den Attributwert von "lang" mit XPath und VTD-XML zu erhalten.

import com.ximpleware.*;
public class getAttrVal {
    public static void main(String s[]) throws VTDException{
        VTDGen vg = new VTDGen();
        if (!vg.parseFile("input.xml", false)){
            return ;
        }
        VTDNav vn = vg.getNav();
        AutoPilot ap = new AutoPilot(vn);
        ap.selectXPath("/bookstore/book/title/@lang");
        System.out.println(" lang's value is ===>"+ap.evalXPathToString());
    }
}

Sie können es auch bekommen

string(//bookstore/book[1]/title/@lang)    
string(//bookstore/book[2]/title/@lang)

Wenn Sie jedoch XMLDOM mit JavaScript verwenden, können Sie etwas codieren

var n1 = uXmlDoc.selectSingleNode("//bookstore/book[1]/title/@lang");

und n1.text gibt dir den Wert "eng"


Um das Problem javax.activation.DataHandler zu beheben, müssen Sie das JavaBeans Activation Framework activation.jar in Ihrem Klassenpfad hinzufügen.

Um das Problem javax.mail.internet.mimeMultipart zu beheben, müssen Sie die Java Mail-API mail.jar in Ihrem Klassenpfad hinzufügen.

Die Warnmeldungen, die in der Konsole ausgegeben werden, zeigen, dass die oben genannten JAR-Dateien nicht im Klassenpfad enthalten sind.





xml xpath