开发者

Import an HTML table using XSL

I have constructed an XSL file that parses an开发者_如何学JAVA XML formatted log and generates an HTML page with information from the log. In this same XSL file, I am attempting to use XSL to pull in an external HTML file that contains a table that I want to display. As it stands, I can display the entire page that contains the table, but am unable to isolate the table. How can this be done? Currently, I can pull in the entire page using the following code:

<xsl:copy-of select="document($tablePageUrl)" />

However, I don't understand how to traverse the HTML body and pull out a copy of the table. An example of how the HTML document is formatted (the document is proper XML, but not proper HTML):

<html>
<head>
</head>
<body>
<table>
    Table Contents
</table>
</body>
</html>


Sounds like you want to use XPath to select a particular element in the document.

Try something like:

<xsl:copy-of select="document($tablePageUrl)/html/body/table" />


From comments:

I had tried using XPath but was using incorrect syntax

From http://www.w3.org/TR/xpath/#node-sets

The / and // operators compose an expression and a relative location path. It is an error if the expression does not evaluate to a node-set. The / operator does composition in the same way as when / is used in a location path

In particular, this syntax:

document($tablePageUrl)/html/body/table

Following the production:

PathExpr    ::=   FilterExpr '/' RelativeLocationPath 

FilterExpr  ::=   PrimaryExpr 

PrimaryExpr ::=   FunctionCall  


Check to see whether the HTML is in a namespace. (Look for a telltale xmlns="....".) Your sample isn't in a namespace, but from experience, if people don't realise that namespaces matter, they often remove the namespace declaration when posting samples. If the elements are in a namespace, then the XPath expression needs to use prefixed names to select them.


<xsl:variable name="source-html" select="document('url')" />

<xsl:value-of select="$source-html//table" />
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜