我想将xml标记内容分配给字符串: -
String str=
"
<?xml version="1.0" encoding="UTF-8"?>
<PrintLetterBarcodeData uid="s3434343" name="sdsdasdasd" gender="M" yob="1991" co="S/sdsds" street="sdsdsdl605"/>
";
但错误很少。 我正在使用eclipse。 这个标签由QR码扫描器自动生成,因此我无法修改此标签。
答案 0 :(得分:2)
您需要转义所有双引号:
String str="<?xml version=\"1.0\" encoding=\"UTF-8\"?> <PrintLetterBarcodeData uid=\"s3434343\" name=\"sdsdasdasd\" gender=\"M\" yob=\"1991\" co=\"S/sdsds\" street=\"sdsdsdl605\"/>";
答案 1 :(得分:1)
有什么错误?在不知道错误的情况下很难诊断它。但是,我可以说在XML字符串中的引号之前需要一个\字符。
这将是
String str= "<?xml version=\"1.0\" encoding=\"UTF-8\"?><PrintLetterBarcodeData uid=\"s3434343\" name=\"sdsdasdasd\" gender=\"M\" yob=\"1991\" co=\"S/sdsds\" street=\"sdsdsdl605\"/>";
答案 2 :(得分:1)
要获取数据的值,您应该使用某种xml解析器。
从Java 1.6开始,您可以使用JAXB执行此任务:
@XmlRootElement( name = "PrintLetterBarcodeData" )
@XmlAccessorType(XmlAccessType.FIELD)
public class PrintLetterBarcodeData
{
enum Gender
{
M, F
}
@XmlAttribute
String uid;
@XmlAttribute
String name;
@XmlAttribute
Gender gender;
@XmlAttribute( name = "yob" )
int yearOfBirth;
@XmlAttribute
String co;
@XmlAttribute
String street;
// getters/setters omitted for readability, these should be used in production code
}
private static PrintLetterBarcodeData parse( String xml ) throws JAXBException
{
Unmarshaller unmarshaller = JAXBContext.newInstance( PrintLetterBarcodeData.class ).createUnmarshaller();
return (PrintLetterBarcodeData) unmarshaller.unmarshal( new StringReader( xml ) );
}
private static void sample() throws JAXBException
{
String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <PrintLetterBarcodeData uid=\"s3434343\" name=\"sdsdasdasd\" gender=\"M\" yob=\"1991\" co=\"S/sdsds\" street=\"sdsdsdl605\"/>";
PrintLetterBarcodeData barcodeData = parse( str );
System.out.println( barcodeData.uid );
System.out.println( barcodeData.name );
System.out.println( barcodeData.gender );
System.out.println( barcodeData.yearOfBirth );
System.out.println( barcodeData.co );
System.out.println( barcodeData.street );
}
然后你可以像任何普通的java对象一样使用它。
答案 3 :(得分:0)
如何将文字放入日食,从剪贴板粘贴?
在这种情况下,请尝试Preferences/Java/Editor/Typing/ "Escape text when pasting into a string literal"
。
如果您从其他来源阅读字符串,则可以尝试使用http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html