2013-10-19 55 views
0

我嘗試將Html頁面轉換爲ecs對象。爲此,我使用partweise XPath。 (我使用Java編碼) 唯一的問題是,我希望XPath以String形式返回所有節點名稱和文本。這是一個有點難以解釋的話,下面有一個例子:使用XPath返回節點名稱和文本爲STring

的HTML文檔:

<html> 
<head> 
    <title>Derp</title> 
</head> 

<body> 
    <div>nonsense&lt;IOText&gt;</div> 
    <a href="http://google.de/">It's Google!</a> 
</body> 

現在我想執行以下XPath:

/html 

而想要結果如下所示:

<head> 
    <title>Derp</title> 
</head> 

<body> 
    <div>nonsense&lt;IOText&gt;</div> 
    <a href="http://google.de/">It's Google!</a> 
</body> 

有沒有這樣的功能?

+0

到目前爲止,我只是尋找一個解決方案......但我找不到一個或想到一個:/我嘗試了一些函數,如文本()(返回null,什麼是合理的)和一些其他XPath函數,whioch只是拋出錯誤,因爲Java不知道它們(name()或local-name()) – notepass

+0

所以你只是想刪除''? –

+0

不,我希望使用XPath請求的標籤內的文本。另一個例子:如果我執行/ html/head,它應該返回 Derp notepass

回答

0

這不是Java問題,它是一個XSLT問題。我相信這會做你想要什麼:

<?xml version="1.0"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output method="xml" omit-xml-declaration="yes"/> 
    <xsl:template match="/html/*"> 
    <xsl:copy-of select="."/> 
    </xsl:template> 
</xsl:stylesheet> 

我從來沒有發現你的要求Java的XPath類不處理XSLT功能的證據。您能否提供已知可與其他XSLT工具一起使用的XSL樣式表,但不能與Java的XPath一起使用?