1

我有以下 XML 和 Xpath 代码.. 使用 node.getContent() 我得到了完整 SUID 元素的字符串返回.. 获取每个元素并使用 recid、suid、group 构造新对象的最佳方法是什么

谢谢!

</newticket>
        <suid>
          <recid>8848DC1650664B0294B194B1D6F61AA0</recid>
          <suid>RST40024</suid>
          <grouplink_recid>C66A8FF92F0F4CE9825A4C42ADDBF09A</grouplink_recid>
        </suid>
        <suid>
          <recid>AF12C557C9DD4EA087155CC263204668</recid>
          <suid>uiuyiitest</suid>
          <grouplink_recid>C66A8FF92F0F4CE9825A4C42ADDBF09A</grouplink_recid>
        </suid>
      </account>
    </newticket>

 XPathExpression escalationIdXpath = xpath.compile("//newticket/account/suid");
        NodeList idNodes = (NodeList) escalationIdXpath.evaluate(doc.getDocumentElement(), XPathConstants.NODESET);
        Node node;
        String escalationId;
        Element urlElem;
        for (int i = 0; i < idNodes.getLength(); i++) {
            SuidType suid = new SuidType();
            node = idNodes.item(i);
            fulltext= node.getTextContent();
            System.out.println(fulltext);
        }
4

1 回答 1

0

有几种方法可以实现这一目标...

你可以

获取节点的子节点suid并将节点名称与SuidType对象的预期值进行比较...

你可以

使用新的 XPath 来查找节点的每个子suid节点...

for (int i = 0; i < idNodes.getLength(); i++) {
    SuidType suid = new SuidType();
    node = idNodes.item(i);
    XPathExpression subPath = xpath.compile("recid");
    String recid = ((Node)subPath.evaluate(node, XPathConstants.NODE)).getTextContent();
    subPath = xpath.compile("suid");
    String suid= ((Node)subPath.evaluate(node, XPathConstants.NODE)).getTextContent();
    subPath = xpath.compile("grouplink_recid");
    String groupLink= ((Node)subPath.evaluate(node, XPathConstants.NODE)).getTextContent();
    // Apply values to the object...
}
于 2013-07-17T06:19:00.070 回答