Announcement

Collapse
No announcement yet.

xpath mit * aber ohne namen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • xpath mit * aber ohne namen

    Hallo Entwickler,

    ich habe ein "ganz normales" html dokument welches ich mit xpath durchlaufen möchtest.

    leider bekomme ich keine knoten sobald ich namen benutze.

    //*[1]
    geht
    //html
    geht nicht

    Woran kann das liegen?

    Ich benutze für die HTML Datei eine eigene DTD, muss ich da noch was extra angeben? Hat das Problem was mit namespaces zu tun? In der HTML Datei ist folgendes angegeben:

    Code:
    <?xml version="1.0" ?>
    <!DOCTYPE html SYSTEM "index.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    	<head>
    		<!-- TITLE -->
    		<title>sarz.de TEST</title>
    		<!-- META -->
    		
    		<!-- JAVASCRIPT -->
    		<script type="text/javascript" src="js/javascript.js"></script>
    		<!-- CSS -->
    		<link rel="stylesheet" type="text/css" href="css/index.css" />
    	</head>
    	
    	<!-- BODY -->
    	<body>
    
    		<!-- MAIN -->
    		<div id="main">
    			<!-- HEAD -->
    			<div id="head">
    			</div>
    			<!-- LINKS -->
    			<div id="top">
    			</div>
    			<!-- LINKS -->
    			<div id="links">
    			</div>
    			<!-- MITTE -->
    			<div id="mitte">
    			</div>
    			<!-- RECHTS -->
    			<div id="rechts">
    			</div>
    			
    			<div />
    
    		</div>
    
    	</body>
    	
    </html>
    Wie gesagt sobald ich versuche über die Namen der Elemente zu selectieren geht es nicht. Hat jemand Tipps für mich?

    Danke für eure Zeit und Mühe.

    EDIT
    Hier noch die DTD:
    Code:
    <!ELEMENT html  (head, body)>
    	<!ATTLIST html xmlns CDATA #IMPLIED>
    <!ELEMENT head	(title, script, link)>
    	<!ELEMENT title (#PCDATA)>
    	<!ELEMENT script (#PCDATA)>
    	  <!ATTLIST script type CDATA #REQUIRED>
    	  <!ATTLIST script src CDATA #REQUIRED>
    	<!ELEMENT link (#PCDATA)>
    	  <!ATTLIST link rel CDATA #REQUIRED>
    	  <!ATTLIST link type CDATA #REQUIRED>
    	  <!ATTLIST link href CDATA #REQUIRED>
    <!ELEMENT body	(div)+>
    	<!ELEMENT div  (#PCDATA|div|p|EMPTY)*>
    		<!ATTLIST div id ID #IMPLIED>
    	<!ELEMENT p (#PCDATA)>
    Zuletzt editiert von indyk; 29.09.2008, 17:36. Reason: DTD

  • #2
    Wird das innerhalb eines XSLT-Stylesheets abgefragt? Gib ggf. dort den Namensraum mit einem selbst gewählten Prefix an, z. B. xmlns:html="..." und frage die Elemente dann mit diesem Prefix versehen ab, z.B. html:body. Unter XSLT 2.0 wird es mittels xpath-default-namespace etwas einfacher.

    Comment


    • #3
      Hallo Thomas,

      in meinem Projekt kommt kein XSLT-Stylesheet vor, aber du hast mich auf die richtige Idee gebracht. Ich habe einfach das xmlns Attribut vom html tag raus genommen und dann hat es funktioniert.

      danke vielmals.

      Comment

      Working...
      X