私はそのような問題を抱えています。XML を解析し、ASCII エンコードされた文字で値を取得する必要があります。私のxmlの一部
<response>
<object>
<id>793675</id>
<name>Žirmūnų</name>
...
値を取得するには、name
関数を使用します
public String getValue(Element item, String str) {
NodeList n = item.getElementsByTagName(str);
return getElementValue(n.item(0));
}
public final String getElementValue( Node elem ) {
Node child;
if( elem != null){
if (elem.hasChildNodes()){
for( child = elem.getFirstChild(); child != null; child = child.getNextSibling() ){
if( child.getNodeType() == Node.TEXT_NODE || child.getNodeType() == Node.CDATA_SECTION_NODE || child.getNodeType() == Node.ELEMENT_NODE){
return child.getNodeValue();
}
}
}
}
return "";
}
そのように:
Document doc = XMLfromString(xml);
NodeList nodes = doc.getElementsByTagName("object");
Element e = (Element)nodes.item(0);
String restName = Html.fromHtml(getValue(e, "name")).toString();
しかし、結果として、文字列のみに含まれる前に文字列を含む値のみがあり、#
文字&
列restName
はなぜ切り捨てられ#
ますか? 文字#
はxmlで許可されていますね。完全な文字列値を取得するにはどうすればよいですか?