2016-04-27 19 views
1

RSSフィードへの参照をいくつか保存して、自分でコンパイルして独自のカスタムフィードを作成するためのエンジンを作成しようとしています。フィードデータをxmlファイルに保存してから、Javaエンジンで読み込み、URLを単純な文字列として保存しています。xmlファイルを特殊文字でjavaで読む

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) 

最終的にそれはそうと、私はこれでこのファイルを読み取る

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

:ここ

は私のxmlファイルでありますxmlファイルを読むと、 "auth"がキーワードとして選択されています。私はxmlファイル内に書式を設定する方法や別の方法で解析するので、エラーは表示されませんか?

答えて

1

&は、XMLの特殊文字で、文字参照の先頭を表します。あなたはアンパサンドを使用したい場合は、&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> 
+0

感謝を!それは間違いなくトリックでした。実際のコンテンツも解析しようとしたことを完全には認識していませんでした。 – Jonny

関連する問題