@sltay

Почему парсер печатает пустые строки?

Есть xml и к нему xsd документы:
<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:tn="asdf" targetNamespace="asdf">

    <xsd:element name="universe">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name = "location" type="tn:LocationType"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>

    <xsd:complexType name="LocationType">
        <xsd:sequence>
            <xsd:element name = "hero" type="tn:HeroType"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string"/>
    </xsd:complexType>


<ts:universe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
			 xsi:schemaLocation="asdf input.xsd"
			 xmlns:ts="asdf">

		<location name="Skyrim">
			<hero name="Alduinn" status="enemy"/>
		</location>

</ts:universe>


пытаюсь пока просто получить значения из xml, но печатаются просто пустые строки
public class DOMController {

	private final String xmlFileName;
	public DOMController(String xmlFileName) {
		this.xmlFileName = xmlFileName;
	}

	public Universe parse(){
		DocumentBuilderFactory dbf = DocumentBuilderFactory.newDefaultInstance();
		DocumentBuilder db;
		Document document = null;
		try {
			dbf.newDocumentBuilder();
			dbf.setNamespaceAware(true);
			db = dbf.newDocumentBuilder();
		} catch (ParserConfigurationException e) { throw new RuntimeException(e); }

		try {
			document = db.parse(xmlFileName);
		}catch (SAXException | IOException e){ e.printStackTrace(); }

		if (document == null) throw new RuntimeException();

		NodeList node = document.getElementsByTagName("location");
		System.out.println(node.getLength());
		for (int i = 0; i < node.getLength(); i++) {
			Node node1 = node.item(i);
			System.out.println(node1.getTextContent());
		}
		return null;
	}

}
Что я неправильно делаю? Validate внутри идеи не показывает никаких ошибок в самом XML
  • Вопрос задан
  • 50 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы