簡體   English   中英

如何在JSOUP中禁用轉義模式?

[英]How can I disable escape mode in JSOUP?

我正在使用JSOUP (用於XML文件的java工具),我使用以下代碼來讀取保存在XML文件中的URL。 這是我的代碼:

Document d = Jsoup.parse(new File("feed.xml"), null);
Element elementCat = d.getElementsByTag("cat").get(0);
String stringUrl = elementCat.ownText();
System.out.println(stringUrl);

XML輸入文件是這樣的:

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<root>
<cat>http://www.isna.ir/ISNA/FullNews.aspx?SrvID=Event&Lang=P</cat>
</root>

我的問題是程序的輸出是這樣的: http : //www.isna.ir/ISNA/FullNews.aspx? SrvID=Event⟪ = P而不是: http : //www.isna.ir/ISNA/FullNews的.aspx?SrvID =事件&郎= P

換句話說,它將“&Lang”自動轉換為“ to”。 請注意,它不是“⟪”,只是沒有分號的“&Lang”。 我想禁用編碼或轉義,我想要原始數據。

我怎么解決這個問題?

你有一塊XML。 在XML中,有一種轉義標記的方式,因為有時您只需要一段包含<或值中帶有"的屬性的文本即可。轉義使用字符實體引用來完成,該字符實體引用以&開頭,后跟代碼,然后是分號,如下所示: &lt;可以表示<

當然,這給我們留下了安培和自身的問題。 如果實際上是與號,而不是其他字符實體,則必須對其進行編碼: &amp;

您所擁有的是XML格式不正確的XML。 &表示你正在開始一個字符實體引用,但它會得到Lang 現在,也許jsoup沒有解決這個問題。 但那是因為它是用於HTML解析而不是XML。 由於HTML比XML寬容一些,因此我想jsoup只是用其他內容代替了成為未知字符引用所需要的內容。 可能是nul角色。

因此,請確保XML格式正確。 如果無法做到這一點,請不要將其視為XML而是HTML。 如果您要處理XML,請查看SAX,StAX,DOM或JAXB。

暫無
暫無

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

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