簡體   English   中英

用特殊字符讀取Java中的xml文件

[英]Reading xml file in java with a special character

我試圖創建一個引擎,用於存儲對RSS提要的多個引用,以便自己進行編譯,然后創建自己的自定義提要。 我將提要數據保存在一個xml文件中,然后在我的Java引擎中讀取它,並將URL存儲為簡單字符串。

這是我的xml文件:

<Feeds>
<item>
    <name>Example-Name</name>
    <url>http://someurl.com/process.php?appuser=[USER]&auth=[KEY]</url>
    <frequency>5</frequency>
</item>
</Feeds>

我閱讀此文件與此:

try {
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder;

        dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(xmlFile);
        doc.getDocumentElement().normalize();

        NodeList list = doc.getElementsByTagName("item");

        for (int i = 0; i < list.getLength(); i++) {
            Node n = list.item(i);
            Element e = (Element) n;
            String fn = e.getElementsByTagName("name").item(0).getTextContent();
            String fu = e.getElementsByTagName("url").item(0).getTextContent();
            int ff = Integer.parseInt(e.getElementsByTagName("frequency").item(0).getTextContent());
            addFeed(fn, fu, ff);
        }
    } catch (ParserConfigurationException e1) {
        System.out.println("Parse Error");
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (SAXException e1) {
        System.out.println("SAX Error");
        // TODO Auto-generated catch block
        e1.printStackTrace();
    } catch (IOException e1) {
        System.out.println("IO Error");
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

我收到此錯誤:

[Fatal Error] Feeds.xml:15:75: The reference to entity "auth" must end with the ';' delimiter.
SAX Error
org.xml.sax.SAXParseException; systemId: file:/C:/Feed%20Engine/Feeds.xml; lineNumber: 15; columnNumber: 75; The reference to entity "auth" must end with the ';' delimiter.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at main.FeedFetcher.<init>(FeedFetcher.java:28)
at main.FEMain.main(FEMain.java:10)

最終看來,當讀取xml文件時,“ auth”被用作關鍵字。 有沒有一種方法可以在xml文件中設置其格式或以其他方式解析它,以使我不會收到錯誤?

&XML的特殊字符,代表字符引用的開始。 如果要使用&符號 ,則必須使用&amp;引用它&amp;

因此,您的XML文件應如下所示:

<Feeds>
 <item>
  <name>Example-Name</name>
  <url>http://someurl.com/process.php?appuser=[USER]&amp;auth=[KEY]</url>
  <frequency>5</frequency>
 </item>
</Feeds>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM