使用java读取带有命名空间的XML文件

时间:2013-03-13 19:34:11

标签: xpath

我想知道如何浏览这个XML文件以获取一些值(如VersionXSD,Support,etx ......)。没有命名空间我可以做到但是使用命名空间我没有结果。

<?xml version="1.0" encoding="UTF-8"?>
<ROOT Id="myRefId"
xsi:schemaLocation="urn:ir:si_my_xsd_07.xsd"
xmlns="urn:ir:se_pelmed" xmlns:nmsps="urn:siram:nmsps"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Horodatage>2013-03-05T12:00:00</Horodatage>
<VersionXSD>01.01</VersionXSD>
<BASE>
    <nmsps:Numero>NUM-123-456</nmsps:Numero>
    <nmsps:Type>TATA</nmsps:Type>
    <nmsps:Support>PASTIS</nmsps:Support>
    <nmsps:DateLimite>2013-03-04</nmsps:DateLimite>
    <nmsps:Serial>0</nmsps:Serial>
    <nmsps:BASEA>
        <nmsps:NomFamille>Paul</nmsps:NomFamille>
        <nmsps:Prenom>Hilaire</nmsps:Prenom>
        <nmsps:DateNai>1979-10-11</nmsps:DateNai>
        <nmsps:Sexe>Masculin</nmsps:Sexe>
    </nmsps:BASEA>
    <nmsps:BASEC Id="1">
        <nmsps:Validite>2013-03-04</nmsps:Validite>
        <nmsps:Sub>true</nmsps:Sub>
        <nmsps:Stup>true</nmsps:Stup>
    </nmsps:BASEC>
    <nmsps:BASED Id="1">
        <nmsps:Numero R="DD1">numero1</nmsps:Numero>
        <nmsps:Categorie>Categorie1</nmsps:Categorie>
    </nmsps:BASED>
    <nmsps:BASED Id="2">
        <nmsps:Numero R="DD2">numero2</nmsps:Numero>
        <nmsps:Categorie>Categorie2</nmsps:Categorie>
    </nmsps:BASED>
    <nmsps:BASED Id="3">
        <nmsps:Numero R="DD3">numero3</nmsps:Numero>
        <nmsps:Categorie>Categorie3</nmsps:Categorie>
    </nmsps:BASED>
</BASE>
</ROOT>

1 个答案:

答案 0 :(得分:0)

您可以使用local-name()绕过命名空间,即//*[local-name()='Support']

或将其作为flup建议实例化,这就是我如何做到的,它使事情变得更容易。