Java 使用XPath以字符串形式返回节点名称和文本
我尝试将Html页面转换为ecs对象。为此,我使用partweise XPath。(我正在用Java编写代码) 唯一的问题是,我希望XPath以字符串形式返回所有节点名和文本。这有点难以解释,下面是一个例子: HTML文档: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<IOText>&l
<html>
<head>
<title>Derp</title>
</head>
<body>
<div>nonsense<IOText></div>
<a href="http://google.de/">It's Google!</a>
</body>
希望结果如下所示:
<head>
<title>Derp</title>
</head>
<body>
<div>nonsense<IOText></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>