XHTML для пераўтварэння XML XSLT

Я раблю вельмі просты XSLT для пераўтварэння HTML старонкі ў файл XML.

But it appears to me that the starting point is not that straightforward to me.My first goal is to convert a <html> tag into a tag.

Я зрабіў наступны XSLT:

 
   
     
    
 

 
   
 

 
  
     Conversion Test
  
 

However, now after I run this xslt, the result xml is purely of the same content of the original html page, it seems that the third template match that I wrote (to match the <html> tag) never gets hit.

Крыніца HTML выглядае наступным чынам:


 
   <head>..</head>
   <body>...</body>
 </html>

Можа эксперты дапамагаюць мне трохі тут?

2
@DevNull, я абнавіў свой пытанне з зыходнай HTML
дададзена аўтар Kevin, крыніца
Ці можаце вы прывесці прыклад вашага HTML? (Асабліва любыя прасторы імёнаў, як XMLNS = "http://www.w3.org/1999/xhtml" )
дададзена аўтар Daniel Haley, крыніца
Дзякуючы. Добры пытанне +1
дададзена аўтар Daniel Haley, крыніца

3 адказы

<�Моцны> XSLT 1.0:

Паспрабуйце дадаць Xmlns: х = "http://www.w3.org/1999/xhtml" у свой XSL: табліцы стыляў і змяніць свой матч матч = "х: HTML" . (Заўвага: вы не павінны выкарыстоўваць «х», вы можаце выбраць усё, што вы хочаце.)

<�Моцны> XSLT 2.0:

Альбо выкарыстоўваць вышэйзгаданы метад або замяніць прэфікс прасторы імёнаў у вашым матчы (ов) да «*» ( матч = «*: HTML» ). Можна таксама дадаць XPath-змаўчанню-імёнаў = "http://www.w3.org/1999/xhtml" у XSL: табліцы стыляў .

4
дададзена
дзякуй, гэта спрацавала! Так, на самай справе HTML XHTML і я выкарыстоўваю XSLT1.0, пасля таго, як пакласці ў вашым рэкамендуемых імёнаў, працаваў вялікі :)
дададзена аўтар Kevin, крыніца
Я абнавіў назву, каб адлюстраваць прыроду зыходнага дакумента таксама.
дададзена аўтар Kevin, крыніца
@Kevin - Вы вельмі вітаюцца. Акрамя таго, калі вы не хочаце, каб прастора імёнаў у вашым вывадзе XML, дадайце выключаюць-вынік-прэфіксы = «# ўсё» у XSL: табліцы стыляў . (Заўвага: Вы можаце замяніць #all з х выключыць х канкрэтна.
дададзена аўтар Daniel Haley, крыніца

Мэтай XSLT з'яўляецца пераўтварэнне xml дакументаў у іншыя xml дакументы. HTML не xml дакумент. У той час як XHTML з'яўляецца XML, гэта на самай справе HTML перафармуляваць так што я проста не ўпэўнены, што вы хочаце зрабіць, гэта лёгка ці магчыма з дапамогай XSLT.

0
дададзена
Такім чынам, зараз вы абнавіць назву :). Гэта адлюстроўвае маю праблему з гэтым.
дададзена аўтар Rob, крыніца

Вы можаце паспрабаваць выдаліць першы шаблон або зрабіць яго больш дакладным, чым адпаведнасць кожнага вузла з кодам <> вузел() .

0
дададзена
@lkuty, я паспрабаваць выдаліць першы шаблон. Цяпер атрыманы XML-гэта проста вялікі вузел тэксту без разметкі. Ён змяшчае ўвесь тэкст з зыходнага HTML-старонкі.
дададзена аўтар Kevin, крыніца
Вы кажаце, выдаліць тоеснае пераўтварэнне?
дададзена аўтар Daniel Haley, крыніца
Я быў неправы. Я думаў, што першае правіла можа быць абраны InstEd з трэцяга, але на самой справе прыярытэт па змаўчанні для шаблону адпаведнасці з элементам больш, чым вузел() і, такім чынам, яна не можа быць праблемай. Я проста не думаў пра NS.
дададзена аўтар lkuty, крыніца