Java XML-парсер, использующий разъяснение xpath для получения значения тега - PullRequest
0 голосов
/ 14 декабря 2018

Я новичок в xml-парсере, использующем xpath, пожалуйста, помогите мне извлечь значение тега для приведенного ниже xml

<?xml version="1.0" encoding="UTF-8"?>
<sync:ApplicationData xsi:schemaLocation="" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:sync="">
    <sync:FileHeader>
            <sync:FileCreationTimeStamp>2018-12-14T04:15:54.54</sync:FileCreationTimeStamp>
    </sync:FileHeader>
    <sync:CorrespondenceInfo>
        <sync:OrganizationName>
            <sync:OrganizationFullName>GLOBAL PATENTS/RANDY W. TUNG, ESQ </sync:OrganizationFullName>
        </sync:OrganizationName>
        </sync:CorrespondenceInfo>

ниже приведен мой java-код для получения OrganizationFullName

            String filePath = "D:\\cut\\2108.xml";
            FileInputStream file = new FileInputStream(new File(filePath));                
            DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder builder = builderFactory.newDocumentBuilder();
            Document xmlDocument = builder.parse(file);
            XPath xPath = XPathFactory.newInstance().newXPath();
            xmlDocument.getDocumentElement().normalize();
            String name;
            name = xPath.compile("//sync:OrganizationFullName").evaluate(xmlDocument);
            System.out.println(name);

при выполнении получения пустого результата, пожалуйста, помогите

1 Ответ

0 голосов
/ 14 декабря 2018

Проблема связана с пространством имен sync:.Чтобы справиться с этим, используйте этот XPath (полностью игнорируя пространство имен):

//*[name()='sync:OrganizationFullName']

.Тогда переменная имени должна быть установлена:

"GLOBAL PATENTS/RANDY W. TUNG, ESQ"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...