Java 使用XPath以字符串形式返回节点名称和文本

Java 使用XPath以字符串形式返回节点名称和文本,java,html,xml,xpath,Java,Html,Xml,Xpath,我尝试将Html页面转换为ecs对象。为此,我使用partweise XPath。(我正在用Java编写代码) 唯一的问题是,我希望XPath以字符串形式返回所有节点名和文本。这有点难以解释,下面是一个例子: HTML文档: <html> <head> <title>Derp</title> </head> <body> <div>nonsense&lt;IOText&gt;&l

我尝试将Html页面转换为ecs对象。为此,我使用partweise XPath。(我正在用Java编写代码) 唯一的问题是,我希望XPath以字符串形式返回所有节点名和文本。这有点难以解释,下面是一个例子:

HTML文档:

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

<body>
    <div>nonsense&lt;IOText&gt;</div>
    <a href="http://google.de/">It's Google!</a>
</body>
希望结果如下所示:

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

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

德普
无意义文本

有这样的函数吗?

这不是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函数。您能否提供一个XSL样式表,该样式表可以与其他XSLT工具一起使用,但不能与Java的XPath一起使用?

到目前为止,我只是在寻找一个解决方案。。。但是我找不到或想不出一个:/I我尝试了一些函数,比如text()(返回null,这是合理的)和一些其他XPath函数,它们只是抛出错误,因为Java不知道它们(name()或local-name()),所以您只想删除
?不,我想要标记中的文本,我用XPath请求它们。另一个例子:如果我执行/html/head,它应该返回Derp
<?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>