使用 .getTextContent 剥离 Java 子元素

问题描述 投票:0回答:1

我需要完整地获取带有

<br />
标签的文本。我使用的是
getTextContent
,但它会剥离内部标签。

代码:

var nodeList = root.getElementsByTagName("tr");
var nodeCount = nodeList.getLength();
for (row = 0; row < nodeList.getLength(); row++) {
    var node = nodeList.item(row);
    // Legacy Data Key e.g "ENV"
    var DOORSKey = new java.lang.String(node.getElementsByTagName("td").item(0).getTextContent().trim());
    var DOORSKeyCount = DOORSKey.length();
    // DOORSVal e.g. "ALL"
    var DOORSVal = new java.lang.String(node.getElementsByTagName("td").item(1).getNodeValue());

示例 HTML:

<table border="1" cellpadding="3" cellspacing="0">
    <tbody>
        <tr>
            <td>Customer</td>
            <td></td>
        </tr>
        <tr>
            <td>ENV</td>
            <td>ALL</td>
        </tr>
        <tr>
            <td>Module</td>
            <td>6DOF</td>
        </tr>
        <tr>
            <td>Object Level</td>
            <td>5</td>
        </tr>
        <tr>
            <td>XML Profile</td>
            <td>DHS_CBP_HW<br />DHS_CBP_TRAIN<br />GE_B0_HW<br />GE_B0_TRAIN<br />GE_B1_HW<br />GE_B1_JSIL_TRAIN<br />GE_B1_TRAIN<br />GE-ER_HW<br />GE-ER_TRAIN<br />GTS_MQ9<br />ITALY_HW<br />ITALY_TRAIN<br />MQ1_HW<br />MQ1_PMATS_TRAIN<br />MQ1_TRAIN<br />MQ9_BLOCK5_BW_HW<br />MQ9_BLOCK5_BW_TRAIN<br />MQ9_BLOCK5_HW<br />MQ9_BLOCK5_JSIL_TRAIN<br />MQ9_BLOCK5_PMATS_TRAIN<br />MQ9_BLOCK5_TRAIN<br />MQ9_BW_HW<br />MQ9_BW_PMATS_TRAIN<br />MQ9_BW_TRAIN<br />MQ9_HW<br />MQ9_IKHANA_TRAIN<br />MQ9_JSIL_TRAIN<br />MQ9_PMATS_TRAIN<br />MQ9_SPECIAL_HW<br />MQ9_SPECIAL_TRAIN<br />MQ9_TAMLG_TRAIN<br />MQ9_TEST<br />MQ9_TRAIN<br />ORGANIC_DEPOT_HW<br />ORGANIC_DEPOT_BLOCK5_HW<br />ORGANIC_DEPOT_TRAIN<br />ORGANIC_DEPOT_BLOCK5_TRAIN<br />PREDA_ITALY_TRAIN<br />PREDB_ITALY_TRAIN<br />PREDC_AC2_HW<br />PREDC_AC2_TRAIN<br />PREDC_HW<br />PREDC_TRAIN<br />PREDEP_TRAIN<br />PREDXP_HW<br />PREDXP_TRAIN<br />RITI_HW<br />RITI_TRAIN<br />WARRIOR_A_HW<br />WARRIOR_A_JSIL_TRAIN<br />WARRIOR_A_TRAIN</td>
        </tr>
    </tbody>
</table>

我尝试使用

.getNodeValue
获取子标签。但从数据库收到错误。

var DOORSVal = new java.lang.String(node.getElementsByTagName("td").item(1).getNodeValue());
java getelementsbytagname
1个回答
0
投票

getNodeValue()
方法返回节点的文本内容而不是HTML标签。您可以使用
innerHTML
获取 HTML 标签。

这样使用,

var DOORSVal = node.getElementsByTagName("td").item(1).innerHTML;
© www.soinside.com 2019 - 2024. All rights reserved.