从XML解析超链接的简便方法

| 我正在尝试解析XML以吐出文件中包含的所有超链接。是否有捷径可寻?它可以像仅输出带有链接的文件一样简单。例如:
<POEM>
<AUTHOR>Ogden Nash</AUTHOR>
<TITLE>Fleas</TITLE>
<LINE>Adam</LINE>
<LINE>Had \'em.</LINE>
<URL> 
<w:rStyle w:val=\"HyperLink\"/>
<w:t>https://www.ogdennash.com/</w:t>
</w:r>
</POEM>
将是XML。我只需要吐出一个文本文件即可:
https://www.ogdennash.com
任何帮助,将不胜感激。     
已邀请:
        抱歉,如果您已经知道其中的一些内容,但是您说您不熟悉XML。 您将需要先清理标记,因为标记不是严格的XML。 例如标签
<w:rStyle w:val=\"HyperLink\"/>
没有定义的名称空间(w) 也 ....
<URL> 
    <w:rStyle w:val=\"HyperLink\"/>
    <w:t>https://www.ogdennash.com/</w:t>
</w:r>
.... 不欢迎welformed xml 它应该是 ....
<URL>
    <w:r> 
        <w:rStyle w:val=\"HyperLink\"/>
        <w:t>https://www.ogdennash.com/</w:t>
    </w:r>
</URL>
.... 如果您将文档格式化并添加一个名称空间,(我将w绑定到http://foo.bar),那么您的xml如下所示
<POEM xmlns:w=\"http://foo.bar\">
    <AUTHOR>Ogden Nash</AUTHOR>
        <TITLE>Fleas</TITLE>
        <LINE>Adam</LINE>
        <LINE>Had \'em.</LINE>
        <URL>
            <w:r>
                <w:rStyle w:val=\"HyperLink\"/>
                <w:t>https://www.ogdennash.com/</w:t>
            </w:r>
        </URL>
</POEM>
然后,您可以使用以下XPath表达式 // w:t / text() 选择标签内的所有超链接。但是,如果要获取URL标记内的所有链接,则需要从URL-> w:r-> w:t中获取文本-为此的XPath是这样的 // URL / w:r / w:t / text() 如果我要用Java编写,我会使用 JTIDY首先修复您的标记 一旦修复,我将使用JDOM(XML解析器)和Jaxen(XPath库)创建文本文件。 我可能会为您提供一个执行此操作的示例类。 这确实不是一个简单的方法,但是它可以工作。我希望它能给您一些指示。     

要回复问题请先登录注册