2013-03-20 76 views
-1

我需要在現有的xml文件中添加一行。我需要添加一個新行。 現有的XML文件具有線在python中匹配一行

<serviceInstance name="idstore.ldap" provider="idstore.ldap.provider"> 
    <property name="idstore.config.provider" value="oracle.security.jps.wls.internal.idstore.WlsLdapIdStoreConfigProvider"/> 

我需要這兩行後添加一個額外的行。

所以我寫了一個代碼,它打開源文件並逐行復制到新的目標文件。 在for循環,我把它拷貝條件

for line in source: 
    if line.strip().startswith('<property name=\"idstore.config.provider\"'): 
     print 1     
     destination.write(line) 
     destination.write('<property name=\"virtualize\" value=\"false\"/>')# 
     continue 
    else: 
     print 2 
     destination.write(line) 
     continue 

但如果條件不匹配的線和狀況越來越錯過。 任何人都可以指出如何解決問題。在開始導致錯誤的任何空格? 我是新來的python,請問如果它是一個微不足道的問題。

+1

如果它是XML文件,請使用XML解析器。從長遠來看,你會爲你自己一個忙。 – NPE 2013-03-20 09:22:57

+0

是因爲行前的空白嗎?嘗試:'line.strip()。startswith(...)' – freakish 2013-03-20 09:25:40

+0

@freakish我添加了strip()並刪除了r。它現在仍在工作。 正則表達式會有幫助嗎? – kairav 2013-03-20 09:37:29

回答

1

您的問題是您在字符串前使用r。 Python使用該標誌逐字解釋字符串,即

r'test\"' 

正是

'test\\"' 

刪除r或在你的字符串中刪除\